Gli eseguibili in OS X devono essere costruiti in modo specifico per essere utilizzati come servizio?

3

Gli eseguibili OS X devono essere costruiti in modo specifico (ad esempio, nessuna interfaccia utente, implementare determinate interfacce) in modo che possa essere utilizzata come servizio? Questo varia a seconda del linguaggio (ad esempio Objective C, Java) o della sua implementazione (compilato rispetto a script)?

    
posta craig 14.12.2018 - 15:42
fonte

1 risposta

2

Un eseguibile su macOS può essere eseguito come servizio o applicazione quasi indipendentemente da come è stato creato.

La domanda da porsi è, il processo richiede l'accesso al WindowServer? Il WindowServer è necessario per fornire un'interfaccia grafica.

Interfaccia utente grafica e sessioni utente

Un processo che richiede un'interfaccia utente grafica può essere utilizzato come processo o servizio in background. A tale scopo, avvia il processo con launchd dalla cartella /Library/LaunchAgents .

Per presentare un'interfaccia utente grafica, il processo deve essere avviato all'interno di una sessione utente. In launchd termini questo significa all'interno di un ambiente Aqua .

Un esempio di questo potrebbe essere pmuser processo. Questo processo gestisce le attività specifiche dell'utente e gestisce le attività che il computer ha esteso pmd processo non può eseguire direttamente.

Computer Wide Processes

Un processo che non richiede un'interfaccia utente può essere lanciato come servizio in background con launchd dalla cartella /Library/LaunchDaemons .

Un processo non grafico può esistere al di fuori di qualsiasi sessione utente e quindi può essere eseguito anche quando nessuno ha effettuato l'accesso.

Un processo a livello di computer non può accedere a gran parte delle funzionalità uniche di macOS. Vedi TechNote 2083 di Apple e Living Dangerously sezione.

    
risposta data 14.12.2018 - 16:13
fonte

Leggi altre domande sui tag