找不到用于 Monit apache2 监控的 httpd.pid

Ber*_*gen 3 ubuntu httpd monit apache-2.2

我是 Linux 新手,我在 Digital Ocean 上安装了 Ubuntu 12.04。

我安装了 Monit 并让它通过电子邮件警报成功监控 MySQL。

我也想监控 ​​Apache2,但找不到任何httpd.pid需要放入 monitrc 文件的文件。

我可以使用以下命令启动 Apache2: /etc/init.d/apache2 start

我可以通过以下方式停止 Apache2: /etc/init.d/apache2 stop

我可以使用以下命令重新启动 Spache2: /etc/init.d/apache2 restart

在没有 httpd.pid 文件的情况下,还有什么其他方法可以在 Monit 中监视 Apache2?

use*_*517 7

如果您查看 init 脚本,它使用 $APACHE_PID_FILE 的值,它从定义为 $APACHE_ENVVARS 的文件中读取,我认为默认为 /etc/apache2/envvars

PIDFILE=$(. $APACHE_ENVVARS && echo $APACHE_PID_FILE) 
Run Code Online (Sandbox Code Playgroud)

在 envvars 文件 PIDFILE 中定义为

APACHE_PID_FILE=/var/run/apache2$SUFFIX.pid

除非您正在运行 apache2 的多个实例,否则 $SUFFIX 可能是 "" 所以 $APACHE_PID_FILE 的值将是

/var/run/apache2.pid
Run Code Online (Sandbox Code Playgroud)

但你应该能够运行

echo $(. /etc/apache2/envvars && echo $APACHE_PID_FILE) 
Run Code Online (Sandbox Code Playgroud)

并获得您的系统认为的价值。