Как автоматически перезапускать службы при сбое?

by itisgood

Скрипт shell для перезапуска служб, если сервис падает или сбой

Обычно процесс разбивается / падает по различным причинам, что позволяет исследовать и исправлять проблемы, но это может занять некоторое время.

Тем не менее, одна вещь, которую вы можете сделать немедленно, чтобы сократить время простоя для лучшей доступности, – автоматизировать перезапуск процесса, если он не работает.

Давайте сделаем это через скрипты freeway – shell

Вы можете использовать следующие сценарии оболочки для запуска через crontab, который будет проверять службы каждые 15 минут (вы можете отрегулировать интервал времени) и запустится, если не будет найден. Звучит круто?

В этой статье я расскажу о двух примерах запуска служб, если они работают.

Автоматический перезапуск MySQL, PHP-FPM, Nginx, если они падают

Создайте файл с помощью редакторов vi в нужном месте (в этой демонстрации я поставлю его под /opt/startifdown.sh)

Скопируйте и вставьте со сценарий в файл и сохраните его

 #!/bin/bash
#Scripts to start services if not running
ps -ef | grep nginx |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/nginx start > /dev/null
fi
ps -ef | grep php5-fpm |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/php5-fpm start > /dev/null
fi
ps -ef | grep mysql |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/mysql start > /dev/null
fi 

Измените разрешение файла на выполнение

 # chmod 755 startifdown.sh 

Проверьте его вручную, чтобы убедиться, что скрипт выполняем.

Вы можете остановить службу и использовать скрипт, чтобы проверить, запущен ли он.

Как только вы удебитесь, вы можете поместить это в cron для запуска каждые 15 минут.

 */1 * * * * /opt/startifdown.sh 

Автоматический перезапуск WebSphere DMGR, Nodeagent, JVM

Создайте файл со следующими скриптами – назову его startwasifdown.sh

 #!/bin/bash
#Scripts to start services if not running
#Specify DMGR Path Here
DMGR=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01
#Specify Profile Path Here
Profile=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
ps -ef | grep dmgr |grep -v grep > /dev/null
if [ $? != 0 ]
then
$DMGR/bin/startManager.sh > /dev/null
fi
ps -ef | grep nodeagent |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startNode.sh > /dev/null
fi
ps -ef | grep server1 |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startServer.sh server1 > /dev/null
fi

Примечание. Измените путь в соответствии с вашей средой

Измените разрешение файла на выполнение

 # chmod 755 startwasifdown.sh

Протестируйте его вручную, и как только вы его доволите, вы можете поместить его в cron для запуска его каждые 15 минут или любого, что вам подходит.

 * / 1 * * * * / opt / startwasifdown.sh 

You may also like

Leave a Comment