我正在使用以下配置进行监控
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 脚本不起作用并修复它。