Отправить заявку

Как автоматически перезапустить сервис в Linux

Если у вас на сервере или рабочей станции бывает так, что какой-либо процесс самостоятельно завершает свою работу и автоматически не восстанавливается эта статья для вас.

Для того, чтобы восстановить работоспособность упавшего процесса, приходится каждый раз запускать сервис руками. Иногда даже выяснить причину такой проблемы до конца выяснить не представляется возможным ввиду отсутствия знаний или той или иной информации.

Способ автоматического рестарта сервисов носит "временный" характер и не рекомендуется его использовать как "панацею".
Можно использовать громоздкие пакеты мониторинга системы, но мы будет это делать штатными средствами Linux. Мы будем использовать cron.

Первым делом узнаем, где лежат скрипты запусков сервисов. В большинстве unix-систем это /etc/init.d/. Можно найти нужный скрипт запуска выполнив команду find:

$ find /etc/init.d -name SERVICE-NAME
/etc/init.d/SERVICE-NAME

Заставим cron выполнять нашу команду каждую минуту и если процесс был завершен и в системе не будет найдено имя нашего процесса - будет выполнен автоматический перезапуск сервиса.

Выполним команду crontab -e и добавим задание в cron:

*/1 * * * * ps -A | grep SERVICE-NAME || /etc/init.d/SERVICE-NAME restart

Проверить работоспособность можно самостоятельно завершив процесс и спустя минуту посмотреть запустится ли он автоматически или нет.

Другие публикации