2016-05-25 2 views
0

Как я могу гарантировать, что несколько экземпляров определенной программы всегда работают?Bash script - Поддерживать запуск нескольких экземпляров

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

ответ

1

Это не вопрос оболочки, потому что подход тот же, какой бы оболочкой вы не пользовались.

Я думаю, что самым чистым решением является наличие «сторожевого таймера», который проверяет выполняемые процессы (используя ps) и, при необходимости, запускает новый или убивает ненужный.

Один из способов, который я использовал в аналогичной ситуации, - написать задание cron, которое регулярно (скажем: каждые 5 минут) запускает сторожевой таймер и позволяет ему выполнять свою работу.

Если такой интервал слишком длинный для вашего случая (т. Е. Если вам нужно проверять его чаще, чем каждую минуту), вы можете запустить сторожевой таймер непрерывно в цикле. Тем не менее, вам понадобится работа cron, которая время от времени контролирует сторожевое устройство - на случай, если сторожевые таймеры умрут. В этом случае вы можете использовать его как daemon.

Смежные вопросы