OSX: "Сервер Windows: не удалось настроить переднее приложение на My App"
Я запускаю launchAgent
из сценария после установки, используя следующую команду:
su -l $LOGGED_IN_USER -c "/bin/launchctl load /Library/LaunchAgents/com.myApp.mac.agent.plist"
Агент отображает элемент состояния (NSStatusItem
) с парой опций меню. У одного из них есть опция настроек. Нажав на это откроется NSWindow
с немногими NSTextField
s. Иногда, хотя это окно самое верхнее, все, что я печатаю, попадает в основное приложение. Я не могу ничего ввести в текстовое поле. Всякий раз, когда это происходит, я замечаю следующий журнал в консоли:
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
команда. Сценарии входа в систему пользователя могут делать всякие сумасшедшие вещи, а вы - не те, что сделал ваш установщик. Однако я не верю, что это связано с главной проблемой.