OSX: "Сервер Windows: не удалось настроить переднее приложение на My App"

Я запускаю 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?

1 ответ

Я не знаю точно, почему вы получаете эту ошибку и поведение. Я рекомендую прочитать Техническую ноту TN2083: Демоны и Агенты. Он подробно объясняет различные аспекты контекста выполнения процесса и как это влияет на то, что процесс может сделать. Это включает в себя возможность подключения процесса к серверу окон.

Для чего стоит ошибка -600 procNotFound, чье описание "нет подходящего процесса с указанным дескриптором". Похоже, что Window Server не может найти процесс с заданным серийным номером (PSN) в данном сеансе безопасности.

Я бы не использовал -l в вашем sudo команда. Сценарии входа в систему пользователя могут делать всякие сумасшедшие вещи, а вы - не те, что сделал ваш установщик. Однако я не верю, что это связано с главной проблемой.

Другие вопросы по тегам