- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在阅读文档和 SMJobBless 示例以及 Internet 上的各种讨论。我的应用现在使用 SMJobBless()
安装了一个特权助手,但该助手根本没有运行。
助手的全部目的是在应用程序启动时加载 kext,这是我的应用程序的一个重要组件。我看到示例显示尝试通过 XPC 连接到助手将启动助手,但我想让我的助手保持简单和笨拙。
API 文档显示有一个 SMJobSubmit()
函数。它到底是做什么的?我可以使用它来启动之前由 SMJobBless()
安装的特权助手吗?
我对 launchd
和 Service Management Framework
的所有术语感到困惑 - 例如,“RunAtLoad”plist 选项控制“你的作业是否启动一次在加载作业时”。 “load”和“launch”到底是什么,它们与“bless/install”和“submit”有什么关系?
最佳答案
SMJobBless 会将您的作业添加到 launchd 的系统中。请参阅 SMJobBless 示例代码以执行此操作。
http://developer.apple.com/library/mac/#samplecode/SMJobBless/Introduction/Intro.html
但是,launchd 的全部目的是控制作业的启动方式和时间,并且默认情况下(在示例代码中)没有指定实际何时启 Action 业,因此作业实际上会永远不会启动。
Nathan de Vries 写了一篇非常好的文章和示例代码,用于使用 SBJobBless 和使用 XPC 与特权作业通信。当然,一个重要的副作用是,尝试与 launchd 服务通信的行为将导致 launchd 实际启动您的服务,因此这将解决您的问题。
http://atnan.com/blog/2012/02/29/modern-privileged-helper-tools-using-smjobbless-plus-xpc/
为了具体回答您的问题,SMJobSubmit 可以执行特权助手。我花了很长时间才弄清楚,但两者之间的区别在于 SMJobSubmit 将允许您使用 launchd 运行具有特权的可执行文件,而 SMJobBless 将永久添加一个 LaunchDaemon。 SMJobBless 的已安装可执行文件将保持受祝福状态,而 SMJobSubmit 将要求您每次重新进行身份验证。
请注意,在这两种情况下,您都必须 SMJobRemove 之前的版本以确保使用新版本。
因此,我认为您需要:
或
关于objective-c - SMJobSubmit() 能否用于执行由 SMJobBless 安装的特权助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11699992/
我想用我的 C# 应用程序创建一个文件夹。我正在写代码,对我来说一切正常,但我的 friend 得到一个错误 Access to the path 'myfolder' is denied. 那我怎么
我遇到了这个非常大的工具,然后深入研究了一些不太漂亮的文档和/或购买了 ebook : 我只想问: Apache Nutch 如何处理 javascript 繁重的网站,以及它如何获取页面? 我的意思
在MySQL中,如何只撤销DROP DATABASE权限,而不撤销DROP TABLE权限? 最佳答案 只需为单个表分配 DROP 权限,而不是为整个数据库分配权限。 关于MySQL DROP DAT
我有一个 bash 脚本可以备份我的数据文件 (~50GB)。脚本基本上是这样的: sudo tar /backup/mydata1 into old-backup-1.tar sudo tar /b
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在 Google 的 Cloud Composer 上运行 Airflow。我正在使用 KubernetesPodOperator并希望通过 gcsfuse 将谷歌存储桶挂载到 pod 中的目录中.
我需要从客户端机器加载一个 CSV 文件到 MySQL 服务器数据库。我正在尝试 LOAD DATA INFILE。 我的困惑是关于使用所需的访问权限- 加载数据文件- 加载数据本地 INFILE 之
我目前正在尝试在 Amazon Redshift 中创建一个新的只读用户。 我使用的 Redshift 版本是: PostgreSQL 8.0.2 on i686-pc-linux-gnu, comp
我正在尝试将 RackSpace 中的 MySQL 数据库 备份到 AWS。 我听从了这个 blog 的建议并在我的 AWS RDS 控制面板中设置了 log_bin_trust_function_c
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to force my .NET App to run as administrator on Wi
我是一名优秀的程序员,十分优秀!