У меня проблема с monit, из-за которой Varnish иногда дает сбой и отказывается запускаться. Итак, Varnish мертв, а мой веб-сервер недоступен. Вот сообщение из журнала мониторинга:
info : 'varnish' stop: /etc/init.d/varnish
info : 'varnish' start: /etc/init.d/varnish
error : monit: Error reading pid from file '/var/run/varnish.pid'
В мониторе Varnish я подумал о настройке опции перезапуска nginx, чтобы он мог снова прослушивать внешние запросы на порту 80, если произойдет что-то вроде этого:
if 3 restarts within 3 cycles
then exec "/etc/init.d/nginx restart"
and timeout
За исключением тех случаев, когда я это вызываю, иногда nginx успешно останавливается ... но никогда не запускается снова.
Решения, о которых я подумал, представляют собой своего рода хак (kill -9 nginx && /etc/init.d/nginx start) и (killall -9 varnishd && rm -f /var/run/varnish.pid).
Я надеялся, что кто-нибудь сможет предложить предложения по любой из двух вышеуказанных проблем. Спасибо!
У меня аналогичная проблема при перезапуске nginx. Я использую что-то вроде этого:
/etc/init.d/nginx stop
sleep 2
/etc/init.d/nginx start
И это работает
никогда не используйте -9, НО ТОЛЬКО если вы уже пробовали -3 и -15, он оставляет сокеты открытыми, и в основном приложение не имеет возможности очистить после себя.
Вы будете вечно сражаться с монитом; Я никому не рекомендую использовать его ни для чего. Гораздо более надежная архитектура - это что-то вроде DAEMON Tools.