【问题标题】:LaunchDaemon quitting unexpectedlyLaunchDaemon 意外退出
【发布时间】:2014-09-04 14:51:38
【问题描述】:

我几乎没有使用 OS X 中的守护进程的经验,但设法让一个每 60 秒重复运行一个 php 文件的运行。它似乎运行良好,并且一次可以运行数周而没有任何问题。但是,有时它会由于我无法弄清楚的原因而停止工作。发生这种情况后,我的守护程序将不再列在 launchctl 列表中。如果我运行 launchctl start,它将再次开始工作而没有问题。

我将如何找出这种看似随机关闭的原因? php 文件用于从在线 API 请求数据并使用检索到的信息更新 MySQL 数据库。

这是我的 plist 文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
 <dict>
 <key>Label</key>
 <string>mschirma.automator</string>
 <key>ProgramArguments</key>
 <array>
 <string>/usr/bin/php</string>
 <string>/Library/WebServer/Documents/automator/time_log.php</string>
 </array>
 <key>StartInterval</key>
 <integer>60</integer>
 </dict>
</plist>

谢谢

【问题讨论】:

    标签: php plist daemon launchd


    【解决方案1】:

    如果某个守护程序经常以非零状态码退出,Launchd 将从托管守护程序列表中删除该守护程序。因此,您需要检查您的 PHP 脚本并确保它始终以零状态码退出,即使在网络或数据库故障的情况下也是如此。

    【讨论】:

    • 谢谢!当我的 php 脚本无法连接到远程 API 时,它会超时,这正是您所描述的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多