创建一个定时启动的plist

时间:2010-09-06 14:50:37

标签: macos shell plist

我正在尝试为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>

非常感谢!

1 个答案:

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