【问题标题】:Cron Job status check by code通过代码检查 Cron Job 状态
【发布时间】:2017-10-18 14:41:08
【问题描述】:

我们在系统中有多个 cron,一些 cron 依赖于父 cron,但有时父 cron 停止,而不是所有子 cron 无法正常工作。如果 cron 作业停止工作而不是服务器向用户电子邮件发送邮件或显示任何其他警报,则有任何可能性。

【问题讨论】:

  • 发布一些您可能遇到的代码和错误。另外,这个php有什么关系?
  • 你的 cron 代码是什么。因为 cron 向用户发送电子邮件。如果没有设置为 blackhole dev

标签: php server cron


【解决方案1】:

您可以解析crontab -l 的输出以查看是否存在特定的crontab 条目。至于 cron 是否在运行,可以通过解析 ps -eaf 命令的输出来查看 crond 是否在运行。

您可以使用PHP中的system()函数调用命令行工具或exec()

EG:

exec("PATH=/usr/sbin:/usr/bin:/sbin:/bin; service crond status", $output, $return);
print $return . "n";

【讨论】:

    【解决方案2】:

    也许您可以在不同的服务器上运行 monitor-cron 来监控其他 cron 的运行状况。有几种监控方式:

    1) Your parent cron could set a flag in database to indicate its running state.
    2) Your monitor cron could read output of "ps -eaf" command to check if parent cron is running or not
    

    您的 monitor-cron 首先应该检查运行父 cron 的服务器是否可用。

    问候,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 2010-12-26
      相关资源
      最近更新 更多