Я ищу различные службы, которые помогают поддерживать процессы в рабочем состоянии (автоматический перезапуск в случае сбоя). Какие из них вы предпочитаете и каковы ваши рекомендации / предложения? Вот несколько методов, которые я нашел:
Лично у меня был плохой опыт с некорректным возрождением процессов monit, поэтому я не рекомендую это делать. В настоящее время я использую daemontools, и пока он работает достаточно хорошо.
DAEMON Tools действительно хорошо доказано; с лицензией больше не проблема, я не думаю.
И это Вопросы-Ответы сравнивает его с inittab, о котором вы спрашивали.
Если вы хотите простого, я бы пошел с запустить его. Он будет перезапускать службу один раз в секунду до тех пор, пока она не будет постоянно работать, может заменить скрипты в /etc/init.d небольшой ручной работой и будет иметь последовательную обработку на всех этапах.
Единственный недостаток, который у меня был, - это выяснение одноразовых постоянных сервисов (сервисы, которые «запускаются», но на самом деле выходят, оставляя флаг, что они «работают», т.е. /etc/init.d/networking
на самом деле это не сервис, но действует как сервис), чтобы добиться такого поведения, нужно приложить немного усилий. Большинство людей вводят вторичный инструмент для приостановки выполнения скрипта от завершения или бесконечного цикла с помощью sleep
и т.д., чтобы он не выходил из скрипта. Когда вы выпускаете sv stop <service>
затем он завершает работу оболочки, и все идет «как обычно».
запуск решает эту проблему и многое другое. Согласно статья в Википедии:
Демон launchd по сути является заменой сценариев init, rc, init.d и rc.d, SystemStarter (Mac OS X), inetd и xinetd, atd, crond и watchdogd.
Он широко распространен в мире Mac, но у него открытый исходный код, и нет причин, по которым вы не можете использовать его в Linux. Ubuntu рассматривала возможность его использования, но в то время лицензия была несовместима (с тех пор она была изменена на лицензию Apache).
В комплекте маршрутизации Quagga есть watchquagga, адаптированная к потребностям этого пакета. Не уверен, можно ли его использовать с каким-либо универсальным демоном.