6

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

php dojobs.php

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

while(true)
{
   code here
}

我有以下问题:

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

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

(我如何确保上面的 nohup 命令正常工作并且 sendMail.php 文件确实完成了它的工作?sendMail.php 不是一个守护进程。它发送一封电子邮件然后退出。)

太感谢了。

4

1 回答 1

2

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

于 2011-12-08T17:34:53.793 回答