所以我写了一个python脚本,试图与launchd一起运行。 python脚本连接到Internet,然后在完成后写入JSON文件。它在终端中运行,并将JSON文件写入输出,因此可以正常工作。
当我尝试设置启动的plist时,我会用launchctl load /Library/LaunchAgents/com.data.plist
加载它。
我在输出路径或错误路径中没有收到任何错误,但是JSON从未写入,表明它没有完成脚本。然后,我立即在终端中运行它以检查其不是Internet连接,并且它确实在运行。
我已经测试过launchctl list | grep com.data
并收到状态78,我认为这只是一个退出代码,实际上并没有帮助。我的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>com.data</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3 </string>
<string>/Users/ben/Documents/data.py</string>
</array>
<key>StandardOutPath</key>
<string>/Users/ben/Documents/pingfloyd.log</string>
<key>StandardErrorPath</key>
<string>/Users/ben/Documents/pingfloyderror.log</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>48</integer>
</dict>
</dict>
`
我不确定我是否正确使用了shebang线。我尝试将其传递给arguments属性,但是我读到某个地方使用#!/ usr / bin / env python3,我认为这与我在这里所做的是同一件事,但我不知道在哪里放置使用python脚本或plist脚本。有人知道吗?