Скрипт 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