Автостарт сервисов при остановке
Иногда просто необходимо чтобы некоторые сервисы запустились сами (без вмешательства) при остановке. Я хочу привести довольно неплохой пример как это можно сделать. Конечно, это не решит проблему на 100%.
Для того чтобы реализовать автостарт некоторых сервисов, я создам скрипт и потом его добавлю в крон задание для выполнения по расписанию. В своей статье «Автостарт сервисов при остановке» я покажу на готовых пример как это можно реализовать.
Автостарт сервисов при остановке
Для начала, открываем файл, я назову его autostart_some_services_after_stop.sh:
# vim /home/captain/autostart_some_services_after_stop.sh
Для каждой службы, я пропишу автозапуск при падении.
Если нужно добавить в автозапуск веб-сервер apache, то пропишите в скрипт следующие строки:
#!/bin/bash # APACHE SECTION RESTART_apache="/etc/init.d/apache2 restart" PGREP="/usr/bin/pgrep" HTTPD="apache" $PGREP ${HTTPD} if [ $? -ne 0 ]; then $RESTART_apache fi
Если нужно добавить в автозапуск веб-сервер nginx, то пропишите в скрипт следующие строки:
# Nginx SECTION RESTART_nginx="/etc/init.d/nginx restart" PGREP_nginx="/usr/bin/pgrep" NGINX="nginx" $PGREP ${NGINX} if [ $? -ne 0 ]; then $RESTART_nginx fi
Если нужно добавить в автозапуск сервер mysql, то пропишите в скрипт следующие строки:
# MYSQL SECTION RESTARTM="/etc/init.d/mysql restart" MYSQLD="mysqld" $PGREP ${MYSQLD} if [ $? -ne 0 ]; then $RESTART $RESTARTM fi
Скрипт готов, но еще нужно добавить права на исполнение, для написанного скрипта:
# chmod +x /home/captain/autostart_some_services_after_stop.sh
Сейчас, осталось совсем не много, необходимо прописать (добавить) данный скрипт в кронтаб для выполнения по расписанию, для этого выполняем:
# crontab -u captain -e
в конец добавим строку:
*/1 * * * * /bin/sh /home/captain/autostart_some_services_after_stop.sh
И сохраняем данный файл, если не знаете как пользоваться crontab, то можно ознакомится с моей темой тут:
Скрипт, будет выполнятся 1 раз в минуту и проверять работают ли сервисы, если нет, то перезапустит их. Это не выход, т.к лучше всего разобраться почему данная служба перестала работать. Но если нет нужды, то скрипт годный.
На этом, я завершаю свою статью «Автостарт сервисов при остановке».