Я использую следующую конфигурацию для мониторинга
set daemon 30
check process varnish with pidfile /var/run/varnishd.pid
if failed host www.hatchedbyyolk.com port 80 protocol http
and request "/monit-check-url"
then exec "/root/scripts/varnish_restart.sh"
set httpd port 2812 and
use address localhost
allow localhost
Монит запускается нормально, но monit status
показывает следующее
Process 'varnish'
status Does not exist
monitoring status monitored
data collected Sun Oct 13 00:37:03 2013
По какой-то неизвестной причине команды start и stop не влияют на лак, поэтому я использую этот сценарий, который находится в /root/scripts/varnish_restart.sh
#! /bin/sh
killall varnishd
varnishd -f /etc/varnish/default.vcl -s malloc,1G -a 0.0.0.0:80
Излишне говорить, что что-то не так, и Varnish не перезапускается сам.
Что в данном контексте означает «не существует» для статуса?
Я что-то упустил?
РЕДАКТИРОВАТЬ
Я только что проверил, что PID в файле /var/run/varnish.pid не соответствует ни одному PID, который я вижу в top
Файл PID не будет соответствовать запущенному процессу, поскольку вы не используете сценарий инициализации - он не записывается при запуске службы.
Для обновления файла PID необходимо добавить -P /var/run/varnish.pid
на ваш varnishd
командная строка - а лучше выяснить, почему сценарий инициализации не работает, и исправить это.