Monit 和 Varnish

Monit 和 Varnish

我正在使用以下配置进行监控

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 启动正常,但monit status显示以下内容

Process 'varnish'
  status                            Does not exist
  monitoring status                 monitored
  data collected                    Sun Oct 13 00:37:03 2013

由于某些未知原因,启动和停止命令对 varnish 没有影响,因此我使用这个脚本/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 不会自行重启。

在这种情况下,“不存在”的状态是什么意思?

我是否遗漏了什么?

编辑

我刚刚检查过 /var/run/varnish.pid 文件中的 PID 与我看到的任何 PID 都不匹配top

答案1

由于您没有使用初始化脚本,因此 PID 文件将与正在运行的进程不匹配 - 该脚本不会在服务启动时被写入。

为了更新 PID 文件,您应该将其添加-P /var/run/varnish.pid到您的varnishd命令行中——或者更好的是,找出为什么 init 脚本不起作用并修复它。

相关内容