我是Linux新手,我在Digital Ocean上安装了Ubuntu 12.04。
我安装了Monit,并通过电子邮件警报成功监控了MySQL。
我也想监视Apache2,但是找不到需要放入monitrc文件的任何httpd.pid文件。
我可以启动Apache2: /etc/init.d/apache2 start
我可以用: /etc/init.d/apache2 stop
来停止Apache2
我可以重新启动Spache2: /etc/init.d/apache2 restart
在没有httpd.pid文件的情况下,还有什么其他方法可以监视Monit中的Apache2?
如果你查看init脚本,它使用的值是$ APACHE_PID_FILE,它从定义为$ APACHE_ENVVARS的文件中读取,我认为它默认为/ etc / apache2 / envvars
PIDFILE=$(. $APACHE_ENVVARS && echo $APACHE_PID_FILE)
在envvars文件中,PIDFILE被定义为
APACHE_PID_FILE =在/ var /运行/ Apache2的$ SUFFIX.pid
除非你正在运行apache2的多个实例$ SUFFIX将可能是“”所以$ APACHE_PID_FILE的值将是
/var/run/apache2.pid
但你应该可以运行
echo $(. /etc/apache2/envvars && echo $APACHE_PID_FILE)
并得到你的系统认为价值是什么。
我会尝试两件事情:
pgrep
命令创build一个PID文件。 参考: http : //mmonit.com/wiki/Monit/ConfigurationExamples 在Centos上,使用“服务”工具来pipe理恶魔是一个很好的机会。 服务在目录中configuration: /etc/init.d/
在文件/etc/init.d/httpd
,你会发现pid文件的位置。 我看到like pidfile=${PIDFILE-/var/run/httpd/${prog}.pid}
所以,事实certificate,我的pidfile位于/var/run/httpd/httpd.pid