I configured the launchd to start a command at 18pm every day on my mac pro,but it was not working.
I want to check if the launchd has run the command. I tried the system console, found no anything valuable.
my mac os version is mac os x 10.8.3
My plist file:
<?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>
You defined StartCalendarInterval
, so the job has been executed when it was loaded and it will be executed every day at 18:00.
Query launchd(8) to find out its exit status:
launchctl list | grep mytask
this will return a line line this:
<pid> <status> mytask
When pid
is a number, the job is currently running. Otherwise have a look at status
, which is the exit code of the program, node in your case. An exit code of 0 means either that the program was finished successfully or that is has not been started yet. Positive numbers are returned for program errors, while negative ones mean that the job has terminated due to a signal.
I assume the job failed. You may want to check the programs standard output/error. Specify StandardOutPath
and StandardErrorPath
to do that. The content of these files will likely tell you why the program failed.