Rimuovere un agente da launchd

La stragrande maggioranza degli utenti Mac non avrà bisogno di modificare manualmente launchd e launchctl, ma ci sono momenti in cui si disinstalla o si interrompe l'utilizzo di un'applicazione in Mac OS X e un agente di servizio continua a caricare inutilmente in launchd. Questo è fastidioso, ma questi agenti canaglia sono facili da rimuovere tramite la riga di comando, quindi avvia Terminal e via. Inoltre, ci sono situazioni in cui utenti avanzati potrebbero voler modificare gli agenti caricati in launchd per qualsiasi motivo. In ogni caso, spiegheremo come elencare gli elementi in launchd, come rimuoverli da launchd in OS X e anche come ricaricare gli agenti in launchd sul Mac.

Avrai bisogno di avere un po 'di comprensione e conforto nell'usare la riga di comando e Terminale per usarlo correttamente, rendendolo ideale per utenti più esperti che hanno conoscenza dei daemon di lancio e di come rintracciarli, il che, a volte, è solo una questione di trovarne uno nell'Activity Monitor di Mac OS X, o usando il comando launchctl di cui parleremo a breve. Se decidi di invertire la modifica, puoi anche ricaricare il servizio o il demone in launchd utilizzando un altro comando, che annulla efficacemente il passaggio iniziale di rimozione. Andiamo ad esso:

Rimozione di Agenti di lancio e servizi da launchd in OS X

Ecco come rimuovere un servizio da launchd . Avvia Terminal e quindi utilizza la seguente sintassi con il comando launchctl:

launchctl remove name

Ad esempio, se voglio rimuovere un servizio denominato "com.annoying.service" la sintassi sarebbe:

launchctl remove com.annoying.service

Potrebbe essere necessario anteporre il comando a sudo per rimuovere il servizio, in questo caso il comando sarebbe:

sudo launchctl remove com.annoying.service

Con il prefisso di sudo dovrai inserire una password di amministratore prima che il comando venga eseguito.

Come vedere cosa viene caricato in launchd

Puoi anche controllare cosa viene caricato in launchd usando la seguente stringa di comando:

launchctl list

Questo comando elenca tutti gli agenti e i lavori caricati in launchd, consentendo di manipolare facilmente gli agenti in esecuzione. Poiché scarica una tonnellata di informazioni sullo schermo in una sola volta, potresti volerla canalizzare attraverso i comandi più o meno in questo modo:

launchctl list |more

Ciò consente di premere il tasto Invio per navigare più lentamente nell'elenco.

Se conosci in generale il servizio che stai cercando, puoi anche utilizzare "grep" per trovare il servizio preciso degli agenti, usiamo "mdworker" come esempio:

launchctl list |grep mdworker

Questo riporterebbe solo i seguenti launchagents:

- 0 com.apple.mdworker.sizing
- 0 com.apple.mdworker.single
- 0 com.apple.mdworker.shared
- 0 com.apple.mdworker.mail
- 0 com.apple.mdworker.lsb
- 0 com.apple.mdworker.isolation
- 0 com.apple.mdworker.bundles
- 0 com.apple.mdworker.32bit

Per alcuni servizi, il dumping dell'elenco può anche mostrare il PID (ID processo) del servizio attivo.

Caricamento di un agente Indietro in launchd

Se decidi di riattivare e ricaricare un servizio in launchd, usa il flag 'carica' in questo modo:

launchctl load com.example.service.to.load

Alcuni agenti caricheranno all'istante senza problemi. Per gli altri, potrebbe essere necessario riavviare il Mac prima che il servizio caricato funzioni come previsto, anche se a volte il logout e il back-in sono sufficienti.