Как автоматически рестартировать сервис, если он периодически крашится?
hapydoyzer@drup... 26 сентября, 2008 - 13:40
Здравствуйте.
Есть один сервис в /etc/init.d который иногда дохнет (ddclient, но суть не важна)
Соответственно
/etc/init.d/ddclient status
* status: crashed
Есть ли какой-нибудь способ заставить init автоматически рестартировать его в таком случае?
Без прикручивания костылей вроде цикла в init-скрипте или периодической проверки кроном.
Используется openrc-0.2.5
З.Ы. Вот помню, когда ещё всем рулил /etc/inittab, там была опция какаято, вроде respawn...
»
- Для комментирования войдите или зарегистрируйтесь
а не будет ли
а не будет ли правильнее выяснить причину падения и уже от этого плясать?
Причина
Причина кроется где-то в глубинах перл-скрипта на 3000-строк(клиент DynDns).
Помирание скрипта происходит из-за частых дисконектов инета.
Я к сожалению не силён в перле и поэтому решил переложить свои заботы на инит:) Хотя чувствую механизма рестарта нет и придётся прикручивать костыль
скорее всего
скорее всего нет,
придётся по крону статус проверять,
либо запустить скрипт в отладке и последить на чём именно он спотыкается...
а гугл молчит о проблемах клиента?
скорее всего нет
Впринципе можно. Только ждать долго.
Комп включен 24 часа в сутки, а вылеты присходят раз-два в неделю.
Нашёл на багтрекере проблему, но она не совсем похожа на мою
http://sourceforge.net/tracker/index.php?func=detail&aid=2113169&group_id=116817&atid=676128
А может это
А может это косяк openrc?
Например у меня spamd перезапускается раз в сутки кроном для моих надобностей, так всегда после этого показывает:
/etc/init.d/spamd status
* status: crashed
А всего-то pid у него поменялся, а по ps aux|grep spamd все нормально, все работает...
А с ddclient лучше не по таймеру проверку делать, а при каждом пересоединении, например так:
В файле /etc/conf.d/net прописать что-то типа:
postup() {
[ "${IFACE}" == "ppp0" ] && /usr/sbin/ddclient -daemon=0 &
}
Тогда при каждом реконнекте будет происходить обновление, а не по таймауту, заданному в настройках ddclient. Ну это при условии, что и все прочие натройки ppp тоже прописаны в /etc/conf.d/net и ppp поднимается через /etc/init.d/net.ppp0 start
можешь
можешь попробовать:
* sys-process/daemontools
Available versions: 0.76-r5 [M](~)0.76-r6 {doc selinux static}
Homepage: http://cr.yp.to/daemontools.html
Description: Collection of tools for managing UNIX services
http://cr.yp.to/daemontools/svc.html
выключите уже обязательность заголовков для комментариев
спасибо, будем смотреть
monit сначала
monit
сначала нада помучаться с конфигурацией и запинанием туда своего скрипта(демона), но когда вкуришь. то утилита мощьная.
если надо чтото ваще тупое, то supervice.