gpt4 book ai didi

macos - OS X - Truly 'On Demand' 特权帮助工具

转载 作者:行者123 更新时间:2023-12-04 16:48:30 25 4
gpt4 key购买 nike

我的应用程序需要将文件写入文件系统上的受限位置。
为此,我使用了一个以 root 身份运行的辅助工具。

一切正常,遵循 this example ,我的帮助工具已正确安装并运行。我使用此解决方案能够“唤醒”辅助工具,否则它在初始加载后不会启动超过一次。

辅助工具正在等待来自主应用程序的消息,并正确执行它们。我还有一条消息要求该工具关闭,它也可以正常工作。

问题是 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 管理进程。

最佳答案

正在打字 man launchd.plist进入终端为您提供所有选项 launchd明白。在这些中你可以找到(强调我的):

KeepAlive < boolean or dictionary of stuff >

This optional key is used to control whether your job is to be kept continuously running or to let demand and conditions control the invocation. The default is false and therefore only demand will start the job. The value may be set to true to unconditionally keep the job alive. Alternatively, a dictionary of conditions may be specified to selectively control whether launchd keeps a job alive or not. If multiple keys are provided, launchd ORs them, thus providing maximum flexibility to the job to refine the logic and stall if necessary. If launchd finds no reason to restart the job, it falls back on demand based invocation. Jobs that exit quickly and frequently when configured to be kept alive will be throttled to conserve system resources.

您没有准确地写下“键和值的各种组合”。但是从这个文档中,如果你想要一个按需启动的守护进程,你应该简单地删除 <key>KeepAlive</key>从您的 plist 或将其值设置为 <false/>而不是 <dict>...</dict> .

关于macos - OS X - Truly 'On Demand' 特权帮助工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33128496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com