我正在尝试为LaunchAgents文件夹创建一个永久运行的plist,并且每隔30秒调用一次shell脚本。它以I got here的模板开始,我尝试根据自己的需求进行定制,但它仍然无效。有什么帮助吗?
<?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.Intel_Watchdog</string>
<key>ProgramArguments</key>
<array>
<string>/Library/A_Intel_WATCHDOG/A_WatchDog.sh</string>
</array>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>StartInterval</key>
<integer>30</integer>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
非常感谢!
答案 0 :(得分:1)
我在LaunchDaemons目录中删除了它,它运行正常。所以,这里有一些事情需要检查:
.plist是否已加载?请注意,LaunchAgents文件夹的内容是在登录时加载的,因此您需要注销并重新登录,或者使用launchctl load ~/Library/LaunchAgents/com.Intel_Watchdog.plist
(或文件所在的任何地方)手动加载它。您可以使用launchctl list
检查其状态。
/Library/A_Intel_WATCHDOG/A_WatchDog.sh可执行文件?检查系统日志(/var/log/system.log)以查看launchd是否在启动它时遇到问题。
脚本在完成工作之前是否遇到麻烦?尝试在shebang之后添加date >>/tmp/watchdog.log
,并查看/tmp/watchdog.log中是否有任何内容。如果是,请尝试将StandardErrorPath和StandardOutPath更改为实际文件,以便在脚本运行时查看正在进行的操作。请注意,您必须卸载并重新加载.plist才能使更改生效(注销并重新登录)。
最后,虽然它不会造成麻烦,但您的标签不符合标准惯例(除非您实际拥有域名Intel_Watchdog.com)。如果这仅供本地使用,请将其命名为local.Intel_Watchdog。如果您要发布此项目,则应将标签基于您拥有的域名(以相反的顺序,并在末尾添加“.Intel_Watchdog”) - 请参阅Wikipedia's entry on the reverse domain name system。