Supprimer un agent du launchd

La grande majorité des utilisateurs Mac n'auront pas besoin de modifier manuellement launchd et launchctl, mais il arrive que vous désinstalliez ou que vous arrêtiez d'utiliser une application dans Mac OS X et qu'un agent de service continue de charger inutilement launchd. C'est embêtant, mais ces agents escrocs sont faciles à enlever via la ligne de commande, alors lancez Terminal et nous y allons. En outre, il existe des situations où les utilisateurs avancés peuvent vouloir modifier les agents chargés dans launchd pour une raison quelconque. Dans tous les cas, nous détaillerons comment lister les éléments dans launchd, comment les supprimer de launchd dans OS X, et comment recharger les agents dans launchd sur Mac.

Vous aurez besoin de compréhension et de confort d'utilisation de la ligne de commande et du terminal pour l'utiliser correctement, ce qui en fait l'outil idéal pour les utilisateurs plus expérimentés qui connaissent les démons de lancement et comment les retrouver, ce qui est parfois un problème. d'en trouver un dans le Moniteur d'activité de Mac OS X, ou en utilisant la commande launchctl dont nous parlerons sous peu. Si vous décidez d'annuler la modification, vous pouvez également charger le service ou le démon dans launchd en utilisant une autre commande, ce qui annule l'étape de suppression initiale. Allons-y

Suppression des agents et services de lancement de launchd dans OS X

Voici comment supprimer un service de launchd . Lancez Terminal, puis utilisez la syntaxe suivante avec la commande launchctl:

launchctl remove name

Par exemple, si je souhaite supprimer un service nommé "com.annoying.service", la syntaxe serait la suivante:

launchctl remove com.annoying.service

Vous devrez peut-être préfixer la commande avec sudo afin de supprimer le service, dans ce cas la commande serait:

sudo launchctl remove com.annoying.service

Avec le préfixe sudo, vous devrez entrer un mot de passe administrateur avant que la commande ne s'exécute.

Comment voir ce qui est chargé dans launchd

Vous pouvez également vérifier ce qui est chargé dans launchd en utilisant la chaîne de commande suivante:

launchctl list

Cette commande répertorie tous les agents et travaux chargés dans launchd, ce qui vous permet de manipuler facilement les agents en cours d'exécution. Parce qu'il déverse une tonne d'informations sur l'écran à la fois, vous pouvez le faire passer par les commandes plus ou moins comme ceci:

launchctl list |more

Cela vous permet d'appuyer sur la touche de retour pour naviguer plus lentement dans la liste.

Si vous connaissez généralement le service que vous recherchez, vous pouvez également utiliser "grep" pour trouver le service d'agents précis, utilisons par exemple "mdworker":

launchctl list |grep mdworker

Cela signalerait seulement les launcagents suivants:

- 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

Pour certains services, le dumping de la liste peut également afficher le PID (ID de processus) du service actif.

Chargement d'un agent dans le launchd

Si vous décidez que vous souhaitez réactiver et recharger un service dans launchd, utilisez le drapeau 'load' comme ceci:

launchctl load com.example.service.to.load

Certains agents vont charger instantanément sans problème. Pour d'autres, vous devrez peut-être redémarrer le Mac avant que le service chargé ne fonctionne de nouveau comme prévu, bien que la déconnexion et le retour soient parfois suffisants.