Назад | Перейти на главную страницу

Монит и лак

Я использую следующую конфигурацию для мониторинга

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 командная строка - а лучше выяснить, почему сценарий инициализации не работает, и исправить это.