有可能我不能为此使用launchd,我只是找不到任何明确表示不的东西。那么,问题来了……
我想在每小时 10 分钟后运行我的 Watir 脚本。此脚本启动 Firefox、执行测试并将结果记录到标准输出。我像这样设置我的 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>client_checkout</string>
<key>Program</key>
<string>/Users/chris/svn/qa/watir/tests/client.sh</string>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>52</integer>
</dict>
</dict>
</plist>
在那个shell脚本里面我有:
echo 'hello' >> /Users/chris/results.txt
ruby /Users/chris/svn/qa/watir/tests/client_checkout.rb
回声用于调试目的。
当我将 plist 文件放在 /Library/LaunchDaemons 中时,脚本运行,我看到“Hello”写入文本文件。然后,当它碰到 Ruby 部分时它会失败。当我查看 system.log 时,我看到:
com.apple.launchd.peruser.502[118] (client_checkout[25285]): Exited with code: 1
我尝试将 plist 文件切换到 /Library/LaunchAgents 但结果完全相同。
另外,我认为这不是文件路径问题。当我提供完整的文件路径时,就像我在这里所做的那样,这些脚本可以在任何目录中正常运行。
我不能这样使用launchd吗?我“做错了”吗?这是怎么回事?谢谢!