OS X - 真正的“按需”特权帮助工具

2023-12-10

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

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

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

问题是launchd每次退出时都重新启动该工具,无论我在launchd.plist file.
我不希望帮助程序工具永远运行,等待消息,而是仅按需启动。

Question: 辅助工具每次结束后都会重新启动,这正常吗?如果没有,如何让它死掉并按需重新启动?

这里是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管理流程。


Typing man launchd.plist进入终端为您提供所有选项launchd明白了。其中你可以找到(强调我的):

KeepAlive

This optionalkey 用于控制您的作业是保持持续运行还是让需求和条件控制调用。默认为 false因此只有需求才能开始这项工作。价值可以设置为 true无条件地保住这份工作。或者,可以指定条件字典来选择性地控制 launchd 是否使作业保持活动状态。如果提供了多个键,则启动或对它们进行“或”运算,从而为作业提供最大的灵活性,以优化逻辑并在必要时停止。如果 launchd 找不到重新启动作业的理由,它将回退到基于需求的调用。当配置为保持活动状态时,快速且频繁退出的作业将受到限制,以节省系统资源。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OS X - 真正的“按需”特权帮助工具 的相关文章

随机推荐

  • 动态改变 CSS 内容属性

    我的一个朋友正在从一家公司租用一个网上商店 他能够从不同的模板中进行选择 并且能够覆盖预定义的 CSS 并添加 javascript 片段 他要求我帮助她进行一些更改 但有一些我无法处理的事情 添加到购物车 按钮 在下面的 CSS 中 有一
  • 是否可以创建一个完全独立的 Python 包?

    问题 Ansible 是一个 python 模块 可通过 pip 安装 它依赖于几个依赖项 还有 pip 模块 是否可以将所有这些依赖项和 Ansible 本身 汇总 到某种单一包中 无需 root 即可离线安装 最好不需要 pip 进行安
  • 如何可靠地获取 Outlook 2013 插件中联系人上下文菜单的对象?

    我正在向上下文菜单添加一个条目Contact在 Outlook 2013 中如下本文中的示例 这是 XML
  • 在 CMAKE 自定义命令中运行 objcopy 会导致 make 期间出错

    我正在尝试向一个小项目添加一个构建后命令 该命令将自动获取我的构建输出文件 ELF 并将其转换为 Intel HEX 格式 以便在微控制器上闪烁 然而 当我添加此命令时 构建失败 它使用 shell 运行的所有替换的 CMake 变量字符串
  • 适用于大型和可扩展应用程序的数据库表结构

    我是一名软件工程师 几个月前就开始学习 为了我的工作 我开发了一个大型可扩展的 Web 应用程序 另一家公司负责编程工作并制作其背后的数据库 我们定义了数据以及它们之间的关系 但没有给出他们应该使用的硬数据库结构 现在第一个 内部 东西是可
  • 将 git 存储库中的一组文件拆分到自己的存储库中,保留相关历史记录[重复]

    这个问题在这里已经有答案了 可能的重复 如何在保留子目录的同时拆分 git 存储库 有一次 我将我的代码添加到了现有的 git 存储库中 并从那时起就对其进行了很多承诺 而另一位开发人员则致力于存储库中的其他现有文件 现在我想将我的代码拆分
  • Rails 区域设置不工作

    我正在使用 Rails 4我已将默认区域设置设置为位于 config application rb 中is yml 位于 config locales 中在 Rails 控制台中我输入 I18n available locales gt e
  • Cloudkit可以修改公共数据库的数据吗

    我刚刚浏览了此链接中的云套件文档cloudkit但不清楚如何修改公共数据库的数据库记录 根据cloudkit框架中的描述 使用公共数据库 如图像中所指定 默认数据是世界可读的 所有者可写的 这意味着只有所有者才能修改他的数据 其他用户只能读
  • 在 Angular 2 中创建自定义表单控件

    我正在尝试为一个创建自定义表单控件组件
  • ImageMagick 命令无法在 Powershell 窗口中运行,但可以在 cmd 窗口中运行

    该命令是给图片添加水印 magick nature jpg set option watermarkWidth fx int w 0 25 alpha set background none fill FFFFFF80 stroke FF0
  • 如何在单独的控制台上使用一种配置启动多个 Java 程序(使用 Eclipse)

    我正在使用一个具有多个组件的 Java 程序 目前使用 Eclipse 和 Ant 有没有一种方法可以通过一个启动配置启动多个程序 我有一个 Ant 目标可以完成这项工作 启动多个程序 但我想做一些事情 我想用Eclipse调试程序 因此需
  • 如何从 php 中的给定键获取数组中的下一个键? [复制]

    这个问题在这里已经有答案了 例如我有一个包含以下元素的数组 array array 1 gt a 3 gt c 4 gt d 6 gt f 如果我使用像这样的函数 我怎样才能从给定的键中获取下一个键 get next key array a
  • Api 文件 Azure 函数绑定的动态输出文件名(onedrive、dropbox 等)

    我有一个带有计时器触发器的 Azure 函数 然后我想生成一个具有动态 在运行时定义 名称和内容的文件 并将其保存到例如一个驱动器 我的功能代码 public static void Run TimerInfo myTimer out st
  • Python 计算字母出现次数

    我正在尝试计算字母的出现次数并打印它们 这是我到目前为止所拥有的 def histogram L d for x in L for letter in x if letter in d d letter 1 else d letter 1
  • UnexpectedRollbackException - JTA 事务意外回滚

    当我运行下面的代码时 我得到 UnexpectedRollbackException 而不是 ArrayIndexOutOfBoundsException 环境 Weblogic Spring Hibernate JTA 和 EJB Cod
  • 使用扩展方法验证域模型

    我一直在研究使用服务层在将域模型保存到数据库之前验证它们 我找到了下面的例子使用扩展方法来验证我的模型 但想知道这样做是否有任何具体的缺点 我没有看到验证 除了数据注释 提到那么多 我正在考虑实施以下内容 public class FooS
  • .rar、.zip 文件 MIME 类型

    我正在开发一个简单的 php 上传脚本 用户只能上传 ZIP 和 RAR 文件 我应该使用哪些 MIME 类型来检查 FILES x type 请提供完整列表 自由和平组织 Kiyarash 和 Sam Vloeberghs 的回答 rar
  • VBA将html表格数据复制到excel工作表

    我需要一个可以将本地 html 表数据提取到 Excel 工作表的 VBA 脚本 我有一些代码 在网络上的某个地方找到 可以使用 URL 链接来工作 但我想要的是能够使用本地存储的 html 文件来完成此操作 错误是我得到的是 应用程序定义
  • 如何在 python 中从特定的 ISO 格式正确解析日期

    我连接到数据库上的一个表 其中有两列带日期 我可以毫无问题地解析具有如下格式的值的列 2017 11 03但我找不到一种方法来解析日期格式如下的另一列 2017 10 03 05 06 52 840 02 00 我的尝试如果我通过解析单个值
  • OS X - 真正的“按需”特权帮助工具

    我的应用程序需要将文件写入文件系统上的受限位置 为此 我使用以 root 身份运行的辅助工具 一切正常 遵循这个例子 我的辅助工具已正确安装并运行 我使用此解决方案能够 唤醒 辅助工具 否则它在初始加载后不会启动多次 辅助工具正在等待来自主