【问题标题】:Using Monit to monitor custom daemons使用 Monit 监控自定义守护进程
【发布时间】:2012-01-16 02:52:12
【问题描述】:

我有一个用 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 不是一个守护进程。它发送一封电子邮件然后退出。)

非常感谢。

【问题讨论】:

    标签: php ssh daemon monit


    【解决方案1】:

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

    【讨论】:

    • 问题是我的守护进程正在做很多事情。所以它不能等待进程。
    • 我的意思不是像阻塞其余进程那样等待 - 这是一个无限循环,因此您可以定期轮询返回状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多