我将launchd配置为每天晚上18点在我的mac pro上启动一个命令,但是它没有工作。
我想检查一下launchd是否运行了该命令。我尝试了系统控制台,发现没有任何有价值的东西。
我的mac os版本是mac os x 10.8.3
我的plist文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>mytask</string>
<key>Program</key>
<string>/opt/local/bin/node</string>
<key>ProgramArguments</key>
<array>
<string>/Users/xxx/My/task.js</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>18</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>/Users/xxx/launchd.stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/xxx/launchd.stderr.log</string>
</dict>
</plist>
答案 0 :(得分:24)
您定义了StartCalendarInterval
,因此作业已在加载时执行,而将在每天18:00执行。
查询launchd(8)以找出其退出状态:
launchctl list | grep mytask
这将返回一行:
<pid> <status> mytask
当pid
是数字时,作业当前正在运行。否则,请查看status
,这是程序的退出代码,在您的情况下是节点。退出代码为0表示程序已成功完成或尚未启动。程序错误返回正数,而负数表示作业因信号而终止。
我认为这份工作失败了。您可能想要检查程序标准输出/错误。指定StandardOutPath
和StandardErrorPath
即可。这些文件的内容可能会告诉您程序失败的原因。