2014-04-29 7 views
5

sto lanciando un launchAgent da un post script di installazione utilizzando il seguente comando:OSX: "Window Server: impossibile impostare l'applicazione front a My App"

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

L'agente visualizza un elemento di stato (NSStatusItem) con un paio di opzioni di menu. Uno di loro ha un'opzione di impostazioni. Cliccando su questo si aprirà un NSWindow, con pochi NSTextField s. A volte, sebbene questa finestra sia la parte più alta, qualsiasi cosa scrivo va all'app sottostante. Non riesco a digitare nulla nel campo di testo. Ogni volta che ciò accade, noto il seguente registro nella console:

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

Questo non è un comportamento coerente. Qualche idea sul perché questo registro arriva? E c'è qualche soluzione per questo? Va bene lanciare l'agente usando su -l?

risposta

1

Non so esattamente perché stai ricevendo quell'errore e questo comportamento. Raccomando di leggere Technical Note TN2083: Daemons and Agents. Spiega in dettaglio le varie sfaccettature del contesto di esecuzione di un processo e come influisce su ciò che un processo può fare. Ciò include se un processo può connettersi o meno al server Windows.

Per quello che vale, errore -600 è procNotFound, la cui descrizione è "nessun processo idoneo con descrittore specificato". Sembra che Windows Server non sia in grado di trovare un processo con il numero seriale di processo (PSN) specificato nella sessione di sicurezza specificata.

Non utilizzare -l nel comando sudo. Gli script di accesso di un utente possono fare ogni sorta di cose pazze e non quelle eseguite dal tuo programma di installazione. Tuttavia, non credo sia collegato al problema principale.

+0

Sono andato su quella nota tecnica .. ma non trovo nulla di utile per me .. –