Qual è la directory di lavoro predefinita di uno script eseguita tramite launchd?

5

Mi aspettavo che fosse facile trovarlo su Google, ma non ero in grado di scoprire nulla.

So che la directory di lavoro di un agent / demone launchd può essere modificata tramite la chiave workingdirectory . Tuttavia, questa chiave è facoltativa. Se non viene specificata alcuna directory di lavoro, che cosa usa macOS?

    
posta Wowfunhappy 25.05.2017 - 02:42
fonte

1 risposta

8

Il WorkingDirectory <string> in un launchd.plist è un tasto opzionale usato per specificare una directory da chdir (2) a prima dell'esecuzione del lavoro. Se questo tasto non è presente, viene utilizzata la directory root / .

L'ho verificato eseguendo uno script di shell come un Launch Agent e un Launch Daemon che, una volta eseguito, aggiungeva una directory che elencava un file di testo. In tutti i casi, senza il tasto WorkingDirectory <string> chiave , l'output era la directory root / del disco di avvio .

A seconda che fosse eseguito come root o utente corrente l'output come root contenesse anche le directory nascoste anche se non è stato impostato in modo esplicito per l'output dallo script.

Come nota a margine, il PATH è passato allo script di shell quando è stato eseguito sia come Launch Agent che come Launch Daemon:

/usr/bin:/bin:/usr/sbin:/sbin

Si noti che questo è stato testato sotto OS X 10.8.5.

    
risposta data 25.05.2017 - 03:22
fonte

Leggi altre domande sui tag