简单的Plist。没有输出。是什么赋予了?

时间:2013-07-16 06:00:30

标签: plist launchd

我正在努力找到我正在尝试首次推出的大型工作的错误。所以我创建了我能想到的最简单的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脚本获取打印输出,对吧?我没有看到任何东西 - 我的剧本或流程中有明显的错误吗?

2 个答案:

答案 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