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 - 真正的“按需”特权帮助工具 的相关文章

  • 监控 Thunderbolt 端口连接的变化

    我正在满足一个要求 需要监视 Thunderbolt 端口连接的变化 当 Thunderbolt 电缆连接或断开时 我尝试使用IOServiceMatching kIOUSBInterfaceClassName from IOKit框架但我
  • 如何在 OS X 上查看 $PATH 变量的当前值?

    PATH returns bash usr local share npm bin Library Frameworks Python framework Versions 2 7 bin usr local bin usr local s
  • 当前收据无效或不匹配的 ds 人员 ID

    我正在尝试测试 MacOS 的应用内购买 输入测试用户凭据后 App Store 抱怨 当前收据无效或 ds 人员 ID 不匹配 并且购买失败 我尝试了很多方法来解决这个问题 获取 App Store 收据 http www kotanco
  • NSView 鼠标跟踪

    我在 Mac OS X 上遇到了 Cocoa NSView 的奇怪行为 我在 NSView 容器中有一个自定义 NSView 这个自定义 NSView 跟踪鼠标移动 点击 并有一个工具提示 当我在所描述的视图上方添加 NSView 时 即使
  • OS X Cocoa 自动布局隐藏元素

    我正在尝试使用新的自动布局 http developer apple com library mac documentation UserExperience Conceptual AutolayoutPG Articles Introdu
  • 未找到符号,预计出现在平面命名空间 ObjC++ 中

    我可能遇到了一个简单的问题 但是在编译过程中没有任何信息错误或警告来提醒我出了什么问题 我有一个 Objective C 应用程序 其中包含 C 主文件和 ObjC 头文件 它构建得很好 但是当运行时 它会给出以下错误消息 Dyld Err
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • 使用 Homebrew 安装 Git 时出现问题 [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Homebrew 升级 Git 时出现问题 https stackoverflow com questions 12362021 problems upgrading git with home
  • 从沙箱中的帮助应用程序读取 NSUserDefaults

    我找到了一些阅读资源NSUserDefaults另一个应用程序的 Objective C NSUserDefaults 缓存会阻止其他应用程序准确读取更改 https stackoverflow com questions 10667848
  • 如何使用 Objective-C 加载 dylib 或 .a(静态库)文件?

    C 代码 Windows Assembly assembly Assembly LoadFrom AssemblyPath System Type objTypes assembly GetTypes Type libType null 我
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • NSMenu 未调用 validateMenuItem 或 menuWillOpen

    我的 Mac 应用程序有一个 NSMenu 其委托功能validateMenuItem and menuWillOpen从来没有被调用过 到目前为止 网上的解决方案都没有帮助 看来我做的一切都是对的 菜单项的选择器属于同一类 管理它的类继承
  • Captive Wifi 弹出窗口:单击链接打开 Safari

    我们的 iOS 设备 ipad iphone 等 网络出现问题 连接到 SSID 后 iphone ipad 立即打开强制网络助手 CNA 它就像一个缩小版的浏览器 没有导航按钮等 显示我们的欢迎页面 准备好让用户在网络中验证他的 MAC
  • 左右 mac“命令”键的配置不同吗?

    我想知道是否可以将右侧的 mac 命令 设置为像 ctrl 键一样 但保留左侧 命令 键的默认功能 谢谢 有一个非常棒的应用程序 称为 Ukelele 免费 不幸的是 它无法区分左右命令键 然而 我最近发现了一个更好的应用程序 名为 Con
  • 从命令行减少 PNG 文件的位深度

    我可以从 CLI 执行什么命令或一系列命令来递归遍历目录树并将该树中所有 PNG 文件的位深度从 24bpp 减少到 16bpp 命令应该保留 alpha 层并且不应该增加 PNG 文件的大小 事实上减少会更好 我有一个基于 OSX 的系统
  • 如何在 SceneKit 中以编程方式将 png 纹理包裹在立方体周围

    我是 SceneKit 的新手 试图让一些基本的东西工作 但到目前为止还没有取得多大成功 由于某种原因 当我尝试将 png 纹理应用于 CNBox 时 我最终除了黑色之外什么也没有 这是我在 viewDidLoad 中的简单代码片段 let
  • OSX 中的动态链接优先级之间存在冲突吗?

    OSX 上不同 libjpeg 动态库之间存在动态链接冲突 首先有一个标准的本机 libJPEG dylib 位于 System Library Frameworks ImageIO framework Versions A Resourc
  • localhost 拒绝在 chrome mac 中连接

    我正在使用 webpack dev server 使用此命令运行服务器 npm run dev 当我使用npm start 它工作得很好 但不想这样做 因为它是为了生产 到目前为止我的服务器运行良好http 本地主机 3000 http l
  • 如何在 osx 终端中返回应用程序版本

    我需要在 Mac osX 10 10 上的 sh 脚本中使用应用程序版本 以便我可以与另一个数字进行比较 以便我可以强制更新或不更新 到目前为止我已经有了这个 我使用 Firefox app 作为示例 FirefoxmdlsVersion
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in

随机推荐

  • 动态改变 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 身份运行的辅助工具 一切正常 遵循这个例子 我的辅助工具已正确安装并运行 我使用此解决方案能够 唤醒 辅助工具 否则它在初始加载后不会启动多次 辅助工具正在等待来自主