“launchctl开始”不在启动守护进程中工作
我有一个守护进程,在 Mac 上使用 launchd 设置。该守护进程以 root 身份运行。以下行不会启动我的 UI 应用程序 -
system("launchctl start com.project.myproj");
但如果我转到终端并运行相同的命令 -> launchctl 启动 com.project.myproj。它启动我的应用程序。我的问题是我做错了什么还是系统行为不正确?
I have a daemon process, set up using launchd on Mac. The daemon is running as root. The following line does not launch my UI application -
system("launchctl start com.project.myproj");
But if I go to the terminal and run the same command -> launchctl start com.project.myproj. It launches my application. My question is am i doing something wrong or is system not behaving correctly ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题是系统启动的启动守护进程无法访问 Aqua,因此您的守护进程无法访问桌面环境。
Apple 的技术说明 TN2083:守护进程和代理 描述了其中的一些内容。 (请参阅本节介绍启动代理。)
有人问有关通过 SSH 连接访问 Aqua 环境的类似问题。
我猜您需要重新架构您的应用程序:
The problem is that launch daemons started by the system don't have access to Aqua, so your daemon process can't access the desktop environment.
Apple's Technical Note TN2083: Daemons and Agents describes some of this. (See this section on launchd agents.)
Someone asked a similar question about accessing the Aqua environment from an SSH connection.
I'm guessing you need to re-architect your application a bit: