1
0
使用launchd代理。所有其他的方法都会让你的脑子里充满无用的细节和隐藏的诡计。总的来说,这是一项非常复杂的任务,有许多角落的情况下,是很难实现正确的。launchd代理可以让您集中精力完成任务并节省大量时间。 最好的解决方案是重写代理以不使用命令行,而是连接到launchd守护进程并请求适当的选项/设置。 如果不可能或很难,可以编写将在启动时连接到守护进程的包装器launchd代理,询问选项,然后使用正确的命令行启动原始代理。 如果您认为实现“连接到守护进程”机制太难了…也许是这样,但它比从daemon在其他会话中启动代理要容易得多(当在不同的角落案例支持下实现时)。 但是,如果你真的真的不管你想要什么肮脏的方式,你可以玩“launchctl bsexec”。一些有效的例子: Starting/stopping a launchd agent for all users with GUI sessions (它可以在会话上下文中启动任何可执行文件,而不是“launchctl load”)。 一些最新消息。 “play with launchctl bsexec”我的意思是这样的:
在会话中找到你想要的应用程序,获取它的PID并调用“launchctl bsexec”在同一会话中运行你想要的程序。上面的示例将在登录的“用户”会话中启动textedit,即使该行在另一个登录的用户acount或from service下执行。 但我在狮子身上做了测试-没用。它只对我的豹子有效(10.5/10.6)。 我想说的是-不使用发射代理会让你屁股不停地痛。在经历了十几件这样的事情之后,我们完全转向了发射代理,现在很高兴:) |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |