Cocoa启动代理在安装后自行注册

Cocoa启动代理在安装后自行注册,cocoa,macos,daemon,user-agent,Cocoa,Macos,Daemon,User Agent,我已经创建了Cocoa应用程序,它是launch agent类型。为了分发此文件,我还创建了一个安装应用程序的包,并将launchagnet plist文件复制到/Libraries/LaunchAgents中 现在的问题是安装后,我希望这个应用程序能够在用户上下文中立即运行,而无需注销/重新启动。若我使用安装后脚本从安装程序中的“launchctl”注册了它,它将在根上下文中运行,就像安装程序在根上下文中运行一样 任何关于代理如何注册自身以启动CTL并在用户上下文中运行的建议。请在安装后脚本中

我已经创建了Cocoa应用程序,它是launch agent类型。为了分发此文件,我还创建了一个安装应用程序的包,并将launchagnet plist文件复制到/Libraries/LaunchAgents中

现在的问题是安装后,我希望这个应用程序能够在用户上下文中立即运行,而无需注销/重新启动。若我使用安装后脚本从安装程序中的“launchctl”注册了它,它将在根上下文中运行,就像安装程序在根上下文中运行一样


任何关于代理如何注册自身以启动CTL并在用户上下文中运行的建议。

请在安装后脚本中尝试以下操作:

/usr/bin/sudo -u $USER /bin/launchctl load -S Aqua /Library/LaunchAgents/com.yourcompany.launchagent.plist
请注意,如果多个用户通过快速用户切换登录,这将仅为安装它的用户激活启动代理


使用
launchctl bsexec
,当多个用户登录Mac OS X 10.5/10.6时,有一种不受支持的方法可以使此功能正常工作;有关更多信息,请参阅邮件列表帖子。

我尝试了此操作,但出现错误:“launch_msg():套接字未连接”。。有什么想法吗?这对我有用。只有当您试图以与登录()用户不同的用户身份进行安装时,您才会收到该消息。我也从终端进行了尝试,直接提供用户名而不是使用env宏,得到了相同的错误。这是当前唯一登录的用户。不知道出了什么问题。我想我可能需要在安装后使用注销。谢谢你的帮助。这真的很奇怪-我不知道该说什么,除了试着在launchd dev上发帖和/或提交DTS事件。(或在安装后注销。:-)