Пакет, который я рекомендую для этого, называется daemontools
, автор Dan Bernstein.
Это набор инструментов для обеспечения общесистемного наблюдения за службами и управления службами. Он не только заботится о запуске и остановке служб, но и контролирует демоны служб во время их работы. Среди прочего, он предоставляет надежный интерфейс для отправки сигналов демонам служб без необходимости использования pid-файлов, а также средство ведения журнала с автоматической ротацией файлов журнала и ограничением дискового пространства.
Она удовлетворяет всем вашим требованиям. Она сверхнадежна, как только вы настроите ее и поймете, как ее использовать, она требует очень мало обслуживания. Если в вашей системе возникнет проблема, это будет не daemontools.
Этот пакет и лежащий в его основе дизайн очень прочны. Исходный код не менялся годами, но не позволяйте этому обмануть вас. Он не нуждался в изменениях, потому что он правильный.
Я лично использовал этот пакет для надежного управления сотнями процессов демонов на одной машине одновременно.
Настройка нового клиента проста, просто поместите управляющий файл в указанный каталог, и он будет автоматически запускаться и перезапускаться всегда, пока вы не вмешаетесь. Как только вы узнаете, как должен выглядеть файл, вы создадите шаблон или способ параметризации создания управляющего файла.
Я думаю, что лучше всего получить исходный пакет RPM от kteru на github и собрать из него свой собственный RPM. Его легко собрать, но RPM облегчит управление и тиражирование вашей системы.
Домашняя страница и документация находятся по адресу http://cr.yp.to/daemontools.html
Исходный пакет RPM для CentOS 4-7 доступен на github: https://github.com/kteru/daemontools-rpm
Существует также пакет под названием runit
, который, как я думаю, является ответвлением daemontools
без некоторых ограничений лицензирования и распространения daemontools
и более гибкой политики расположения каталогов. Он есть в репозиториях Debian, о CentOS я не знаю.