我正在努力找到我正在尝试首次推出的大型工作的错误。所以我创建了我能想到的最简单的python文件print 'running test'
,标题为com.schedulertest.plist
,然后创建了一个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>com.schedulertest.py.plist</string>
<key>ProgramArguments</key>
<array>
<string>arch</string>
<string>-i386</string>
<string>/usr/bin/python2.7</string>
<string>/Users/user/Documents/Python_Alerts_Project/schedulertest.py</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>60</integer>
</dict>
</plist>
然后我将其保存在$HOME/Library/LaunchAgents/
并运行:
launchctl load com.schedulertest.plist
我应该每隔60秒从我的py脚本获取打印输出,对吧?我没有看到任何东西 - 我的剧本或流程中有明显的错误吗?
答案 0 :(得分:1)
所以答案不是什么大问题,但它可能会帮助其他人分享解决方案。我只是忘记了,正如我们在移动几个virtualenvs时那样,我所在的python。如果你遇到麻烦而你的.plist
和脚本看起来格式正确,那么运行{{1等等,并根据您在程序参数中列出的路径检查结果。
答案 1 :(得分:0)
要调试.plist
,您可以检查日志中是否有任何错误,例如
tail -f /var/log/system.log
要指定自定义日志,请使用:
<key>StandardOutPath</key>
<string>/var/log/myjob.log</string>
<key>StandardErrorPath</key>
<string>/var/log/myjob.log</string>
要查找作业的最新退出状态,请运行:
launchctl list com.schedulertest.plist
要确保语法正确,请使用plutil
命令。
请参阅:Debugging launchd
Jobs section of Creating Launch Daemons and Agents page。