check_webservice_load.sh: added support for mysql systemd service file.
This commit is contained in:
parent
e9fdd42ce6
commit
569cde854e
@ -141,12 +141,51 @@ if $check_mysql ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
MYSQLD_SAFE=`realpath $(which mysqld_safe) 2>/dev/null`
|
||||
if [ -z "$MYSQLD_SAFE" ]; then
|
||||
if [ -x "/usr/local/mysql/bin/mysqld_safe" ]; then
|
||||
MYSQLD_SAFE=`realpath "/usr/local/mysql/bin/mysqld_safe"`
|
||||
else
|
||||
fatal 'Command \"mysqld_safe\" not found!'
|
||||
MYSQL_INIT_SCRIPT=""
|
||||
MYSQLD_SERVICE_FILE=""
|
||||
if $systemd_supported ; then
|
||||
# - Is Service exclusive controlled by systemd
|
||||
# -
|
||||
if systemctl -t service list-unit-files \
|
||||
| grep -e "^mysql" \
|
||||
| grep -q enabled 2> /devnull ; then
|
||||
|
||||
MYSQLD_SERVICE_FILE=$(systemctl -t service list-unit-files \
|
||||
| grep -e "^mysql" \
|
||||
| awk '{print$1}')
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [[ -z "$MYSQLD_SERVICE_FILE" ]] ; then
|
||||
if [ -x "$(realpath /etc/init.d/mysql.server)" ]; then
|
||||
MYSQL_INIT_SCRIPT="/etc/init.d/mysql.server"
|
||||
elif [ -x "$(realpath /etc/init.d/mysql)" ]; then
|
||||
MYSQL_INIT_SCRIPT="/etc/init.d/mysql"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$MYSQL_INIT_SCRIPT" ]] && [[ -z "$MYSQLD_SERVICE_FILE" ]]; then
|
||||
fatal 'Neither an init-script nor a service file for MySQL found!'
|
||||
elif [[ -n "$MYSQL_INIT_SCRIPT" ]] ; then
|
||||
MYSQL_PS_CHECK_STRING="$(dirname "$MYSQLD")/(mysqld_safe |$(basename "$MYSQLD") )"
|
||||
#MYSQL_PS_CHECK_STRING="(bin/mysqld_safe |bin/mysqld )"
|
||||
else
|
||||
MYSQL_PS_CHECK_STRING="$MYSQLD"
|
||||
fi
|
||||
|
||||
if [[ -z "$MYSQL_PS_CHECK_STRING" ]]; then
|
||||
fatal "Cannot determin a check string for output of command 'ps ax'"
|
||||
fi
|
||||
|
||||
if [[ -n "$MYSQL_INIT_SCRIPT" ]] ; then
|
||||
MYSQLD_SAFE=`realpath $(which mysqld_safe) 2>/dev/null`
|
||||
if [ -z "$MYSQLD_SAFE" ]; then
|
||||
if [ -x "/usr/local/mysql/bin/mysqld_safe" ]; then
|
||||
MYSQLD_SAFE=`realpath "/usr/local/mysql/bin/mysqld_safe"`
|
||||
else
|
||||
fatal 'Command \"mysqld_safe\" not found!'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -159,15 +198,6 @@ if $check_mysql ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
MYSQL_INIT_SCRIPT=""
|
||||
if [ -x "/etc/init.d/mysql.server" ]; then
|
||||
MYSQL_INIT_SCRIPT="/etc/init.d/mysql.server"
|
||||
elif [ -x "/etc/init.d/mysql" ]; then
|
||||
MYSQL_INIT_SCRIPT="/etc/init.d/mysql"
|
||||
else
|
||||
fatal 'Cannot find init-script for MySQL server!'
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if $check_apache ; then
|
||||
@ -437,14 +467,18 @@ stop_mysql() {
|
||||
|
||||
## - Stop MySQL Service
|
||||
## -
|
||||
$MYSQL_INIT_SCRIPT stop > /dev/null 2>&1
|
||||
if [[ -n "$MYSQL_INIT_SCRIPT" ]]; then
|
||||
$MYSQL_INIT_SCRIPT stop > /dev/null 2>&1
|
||||
else
|
||||
systemctl stop "$MYSQLD_SERVICE_FILE" > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
_msg=false
|
||||
|
||||
sleep 2
|
||||
sleep 5
|
||||
|
||||
declare -i i=0
|
||||
PIDS=$(ps aux | grep "$MYSQLD_SAFE" | grep -v grep | awk '{print$2}')
|
||||
PIDS="$(ps aux | grep -E "${MYSQL_PS_CHECK_STRING}" | grep -v grep | awk '{print$2}')"
|
||||
while [ "X$PIDS" != "X" ]; do
|
||||
|
||||
if [ $i -eq 0 ]; then
|
||||
@ -458,13 +492,13 @@ stop_mysql() {
|
||||
info "Going to kill MySQL Processes (mysqld_safe).."
|
||||
fi
|
||||
|
||||
if [ $i -gt 20 ]; then
|
||||
if [ $i -gt 10 ]; then
|
||||
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
echo -e "\t[ Error ]: Killing MySQL Processes (mysqld_safe) failed !!!" >> $LOCK_DIR/extra_msg.txt
|
||||
echo -e "\t[ Error ]: Killing MySQL Processes failed !!!" >> $LOCK_DIR/extra_msg.txt
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
|
||||
error "Killing MySQL Processes (mysqld_safe) failed !!!"
|
||||
error "Killing MySQL Processes failed !!!"
|
||||
|
||||
_msg=true
|
||||
|
||||
@ -472,52 +506,15 @@ stop_mysql() {
|
||||
fi
|
||||
|
||||
for _PID in $PIDS ; do
|
||||
kill -9 $_PID > /dev/null 2>&1
|
||||
kill -15 $_PID > /dev/null 2>&1
|
||||
done
|
||||
|
||||
sleep 2
|
||||
sleep 5
|
||||
|
||||
PIDS=$(ps aux | grep "$MYSQLD_SAFE" | grep -v grep | awk '{print$2}')
|
||||
PIDS="$(ps aux | grep -E "${MYSQL_PS_CHECK_STRING}" | grep -v grep | awk '{print$2}')"
|
||||
i=i+1
|
||||
done
|
||||
|
||||
PIDS=$(ps aux | grep "$MYSQLD" | grep -v grep | awk '{print$2}')
|
||||
declare -i i=0
|
||||
while [ "X$PIDS" != "X" ]; do
|
||||
|
||||
if [ $i -eq 0 ]; then
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
echo -e "\t[ Error ]: MySQL Processes (mysqld) still exists !!!" >> $LOCK_DIR/extra_msg.txt
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
echo -e "\t[ Info ]; Going to kill remaining MySQL Processes (mysqld).." >> $LOCK_DIR/extra_msg.txt
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
|
||||
error "MySQL Processes (mysqld) still exists !!!"
|
||||
info "Going to kill remaining MySQL Processes (mysqld).."
|
||||
fi
|
||||
|
||||
if [ $i -gt 20 ]; then
|
||||
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
echo -e "\t[ Error ]: Killing remaining MySQL Processes (mysqld) failed !!!" >> $LOCK_DIR/extra_msg.txt
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
|
||||
error "Killing remaining MySQL Processes (mysqld) failed !!!"
|
||||
|
||||
_msg=true
|
||||
|
||||
break
|
||||
fi
|
||||
|
||||
for _PID in $PIDS ; do
|
||||
kill -9 $_PID > /dev/null 2>&1
|
||||
done
|
||||
sleep 2
|
||||
PIDS=$(ps aux | grep "$MYSQLD" | grep -v grep | awk '{print$2}')
|
||||
i=i+1
|
||||
|
||||
done
|
||||
|
||||
if $send_msg && $_msg ; then
|
||||
subject="[ Error ]: Stopping MySQL Engine on `hostname -f` failed -- $datum"
|
||||
msg="\n\n`cat $LOCK_DIR/extra_msg.txt`\n"
|
||||
@ -651,15 +648,16 @@ start_mysql() {
|
||||
send_msg=$1
|
||||
send_msg=${send_msg:=true}
|
||||
|
||||
$MYSQL_INIT_SCRIPT start > /dev/null 2>&1
|
||||
sleep 2
|
||||
|
||||
NEWPID=$(ps aux | grep "$MYSQLD_SAFE" | grep -v grep | grep root | awk '{print$2}')
|
||||
|
||||
if [[ -z "$NEWPID" ]]; then
|
||||
NEWPID=$(ps aux | grep "$MYSQLD" | grep -v grep | awk '{print$2}')
|
||||
if [[ -n "$MYSQL_INIT_SCRIPT" ]]; then
|
||||
$MYSQL_INIT_SCRIPT start > /dev/null 2>&1
|
||||
else
|
||||
systemctl start "$MYSQLD_SERVICE_FILE" > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
sleep 5
|
||||
|
||||
NEWPID="$(ps aux | grep -E "${MYSQL_PS_CHECK_STRING}" | grep -v grep | awk '{print$2}' | head -1) "
|
||||
|
||||
if [ "X${NEWPID}X" = "XX" ]; then
|
||||
|
||||
echo "" >> $LOCK_DIR/extra_msg.txt
|
||||
@ -1086,11 +1084,7 @@ if $check_mysql ; then
|
||||
echo -e "\nChecking Mysql databse service on \"`hostname -f`\".."
|
||||
fi
|
||||
|
||||
PID=`ps aux | grep "$MYSQLD_SAFE" | grep -v grep | awk '{print$2}'`
|
||||
|
||||
if [[ -z "$PID" ]] ; then
|
||||
PID=`ps aux | grep "$MYSQLD" | grep -v grep | awk '{print$2}'`
|
||||
fi
|
||||
PID="$(ps aux | grep -E "${MYSQL_PS_CHECK_STRING}" | grep -v grep | awk '{print$2}')"
|
||||
|
||||
if [ "X${PID}X" = "XX" ];then
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user