С целью автоматического выявления возможного зависания и при необходимости перезапуска сервера приложений (конкретно glassfish) можно использовать пример скрипта.
делаем URL, который выдает или ok или сообщение об ошибке
и в crontab добавляем скрипт:
#!/bin/bash
wget -t 1 -T 15 -O status.txt http://url/checkserverstatus/ > /dev/null
if cat status.txt |grep ok
then
echo $(date) 'working' >> check.log
else
echo $(date) 'http not responding ' >> check.log
GLASSFISH_PID=`ps -ef | grep glassfish | grep -v grep | tail -n 1 | awk '{print $2}'`
if [ $GLASSFISH_PID ]
then
echo 'old pid to kill ' $GLASSFISH_PID >> check.log
kill -9 $GLASSFISH_PID
nohup /path/bin/startserv > /dev/null 2>&1 &
GLASSFISH_PID=`ps -ef | grep glassfish | grep -v grep | tail -n 1 | awk '{print $2}'`
echo 'reboot new pid ' $GLASSFISH_PID >> check.log
else
nohup /path/bin/startserv > /dev/null 2>&1 &
echo 'started' >> check.log
GLASSFISH_PID=`ps -ef | grep glassfish | grep -v grep | tail -n 1 | awk '{print $2}'`
echo 'start new pid ' $GLASSFISH_PID >> check.log
fi
fi
делаем URL, который выдает или ok или сообщение об ошибке
и в crontab добавляем скрипт:
#!/bin/bash
wget -t 1 -T 15 -O status.txt http://url/checkserverstatus/ > /dev/null
if cat status.txt |grep ok
then
echo $(date) 'working' >> check.log
else
echo $(date) 'http not responding ' >> check.log
GLASSFISH_PID=`ps -ef | grep glassfish | grep -v grep | tail -n 1 | awk '{print $2}'`
if [ $GLASSFISH_PID ]
then
echo 'old pid to kill ' $GLASSFISH_PID >> check.log
kill -9 $GLASSFISH_PID
nohup /path/bin/startserv > /dev/null 2>&1 &
GLASSFISH_PID=`ps -ef | grep glassfish | grep -v grep | tail -n 1 | awk '{print $2}'`
echo 'reboot new pid ' $GLASSFISH_PID >> check.log
else
nohup /path/bin/startserv > /dev/null 2>&1 &
echo 'started' >> check.log
GLASSFISH_PID=`ps -ef | grep glassfish | grep -v grep | tail -n 1 | awk '{print $2}'`
echo 'start new pid ' $GLASSFISH_PID >> check.log
fi
fi
Комментариев нет:
Отправить комментарий