我的应用程序需要将文件写入文件系统上的受限位置。
为此,我使用了一个以 root 身份运行的帮助工具。
一切正常,按照这个示例,我的帮助工具已正确安装并运行。我使用此解决方案能够“唤醒”辅助工具,否则在初始加载后它不会启动超过一次。
辅助工具正在等待来自主应用程序的消息,并正确执行它们。我还有一条消息要求该工具关闭,它也可以正常工作。
问题是launchd
每次退出时都会重新启动该工具,无论我在launchd.plist
文件中指定什么键。
我不希望帮助工具永远运行,等待消息,而是仅按需启动。
问题:辅助工具每次结束都重启正常吗?如果没有,如何让它死掉并按需重启?
这是launchd.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>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>RunAtLoad</key>
<true/>
<key>Label</key>
<string>com.mycompany.Helper</string>
<key>MachServices</key>
<dict>
<key>com.mycompany.Helper</key>
<true/>
</dict>
</dict>
</plist>
当然,我尝试了各种键和值的组合,以及帮助工具的各种退出状态代码。它没有以任何方式改变launchd
管理过程。