使用Monit监视自定义守护进程

6 php ssh daemon monit

我有一个用PHP编写的守护进程.我使用以下命令来调用守护进程

php dojobs.php
Run Code Online (Sandbox Code Playgroud)

当我调用该命令时,守护进程无限运行,因为文件dojobs.php具有以下代码

while(true)
{
   code here
}
Run Code Online (Sandbox Code Playgroud)

我有以下问题:

  • 如何使用Monit(在CENTOS linux 5.5上)服务器监视此守护程序并在失败时重新启动它?
  • 我在守护进程中有以下代码:

    exec('nohup sendMail.php>/dev/null 2>&1&echo $!';,$ op);

(如何确保上面的nohup命令正常工作以及sendMail.php文件实际上是否正常工作?sendMail.php不是守护进程.它会发送一封电子邮件然后退出.)

非常感谢.

Nar*_*arf 2

对 Monit 不熟悉,所以无法帮助您。但是,exec()您可以使用进程控制 (pcntl_*()) 扩展来分叉单独的进程并等待它们向父进程返回状态代码,以便它知道作业是否已成功完成,而不是调用。