5

我正在launchAgent使用以下命令从安装后脚本启动一个:

su -l $LOGGED_IN_USER -c "/bin/launchctl load /Library/LaunchAgents/com.myApp.mac.agent.plist"

代理显示NSStatusItem带有几个菜单选项的状态项 ( )。其中之一有一个设置选项。单击此按钮将打开一个NSWindow,并带有几个NSTextFields。有时,虽然这个窗口是最顶部的,但我输入的任何内容都会转到底层应用程序。我无法在文本字段中输入任何内容。每当发生这种情况时,我都会在控制台中注意到以下日志:

WindowServer[97]: [cps/setfront] Failed setting the front application to MyApp, psn 0x0-0xb20b2, securitySessionID=0x186c5, err=-600

这不是一致的行为。知道为什么这个日志会出现吗?有什么解决方法吗?可以使用启动代理su -l吗?

4

1 回答 1

1

我不知道为什么会遇到这种错误和行为。我推荐阅读技术说明 TN2083:守护进程和代理。它详细解释了流程执行上下文的各个方面以及它如何影响流程可以执行的操作。这包括进程是否可以连接到 Window Server。

对于它的价值,错误 -600 是procNotFound,其描述是“没有具有指定描述符的合格进程”。Window Server 似乎无法在给定的安全会话中找到具有给定进程序列号 (PSN) 的进程。

我不会-l在你的sudo命令中使用。用户的登录脚本可以做各种疯狂的事情,而安装程序却做不到。但是,我认为这与主要问题无关。

于 2014-05-07T06:37:08.100 回答