Come si usano i comandi launchctl non "legacy" per caricare e scaricare i piani?


14

Ho alcuni file plist in ~/Library/LaunchAgents.

Ho usato felicemente launchctl load -we launchctl unload -wper accenderli e spegnerli per anni. Tuttavia, lo noto ora loade unloadsono retrocesso nella sezione "legacy" della pagina man. Chiamiamo uno di loro com.example.service.plist.

Tuttavia, quando provo a interagire con questi piani tramite launchctl enable "gui/$(id -u)/com.example.service"e launchctl disable "gui/$(id -u)/com.example.service", altri comandi di avvio sembrano riportare il successo - ad esempio, launchctl print "gui/$(id -u)"mi mostra totalmente flag disabilitati che corrispondono allo stato che ho impostato - i servizi non si avviano e si fermano o ascoltare e non ascoltare sui loro porti.

C'è qualche passo che mi manca? Per il momento mi attengo loade unloadmi piacerebbe imparare il modo non deprecato di interagire con queste cose prima che Apple alla fine sbatta la porta sul vecchio / cattivo modo ...


L'eredità significa che è in atto un cambiamento: puoi ancora utilizzare il caricamento e lo scaricamento del contenuto del tuo cuore su 10.11 e precedenti. La mia presunzione è che Apple avrà documentazione al WWDC quest'anno e un calendario per la migrazione ...
bmike

1
Credo che semplicemente non potrebbe essere una risposta per questo ancora, ma di sicuro sembra come enablee disablesono destinati a sostituire loade unload. Non riesco proprio a farli funzionare come mi aspetto.
Glifo

1
Hai provato seguendo launchctl enablecon launchctl kickstart?

Non l'ho fatto, ma non si launchctl kickstartsuppone che rilasci solo un'attivazione per il lavoro in questione? Sto usando launchd specificamente perché voglio l'attivazione puramente on-demand.
Glifo

Risposte:


6

Ho chiesto all'utente di Twitter @launchderp :

@launchderp Lo scaricamento launchctl loade lo scaricamento sono ancora sicuri da utilizzare, almeno fino al 10.12 o qualsiasi altra cosa venga dopo?

cf Come si usano i comandi launchctl non "legacy" per caricare e scaricare i piani?

E @launchderp ha risposto

@tjluoma Sì, sono ancora al sicuro. Troppi anni di dipendenze per romperle.

Anche se questa potrebbe non sembrare un'affermazione ufficiale di Apple, credo che questa persona sia qualcuno a cui sta lavorando attivamente launchdper Apple, e mi fido di quello che dicono. YMMV.

Morale della storia: se il carico / scarico funziona per te, continua a usarli :-)


2
Non contrassegnato come "accettato" perché non affronta del tutto la domanda enablee viene disablevotato perché apprezzo ancora le informazioni :).
Glifo

1

L'articolo a cui fa riferimento TJ Luoma è molto utile. Passaggi per Launch Daemon:

  1. Salva il tuo file plist /Library/LaunchDaemons/come al solito. Diciamo che il file è com.example.mysrv.pliste l'etichetta in plist è com.example.mysrv.
  2. sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist. Si noti che il percorso può essere relativo (a $PWD) o assoluto.
  3. Controlla il servizio con sudo launchctl print system/com.example.mysrv. Dovrebbe dire "corsa".

Gli agenti di lancio dovrebbero essere simili. Avvertenza: non ho idea di come interrompere un servizio senza scaricarlo bootout.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.