6 votes

Comment supprimer un service de launchd ajouté par erreur?

Par erreur, j'ai ajouté un service non valide (n'existe pas) à launchd :

sudo launchctl enable system/homebew.mxcl.cntlm

Le code ci-dessus devrait être system/homebrew.mxcl.cntlm au lieu.

Cependant, après avoir supprimé le service :

sudo launchctl remove system/homebew.mxcl.cntlm

il apparaît toujours dans la liste des services désactivés :

nlykkei-mbp:~ nlykkei$ launchctl print-disabled system
disabled services = {
    "org.apache.http" => false
    "homebrew.mxcl.dnsmasq" => false
    "com.apple.CSCSupportd" => true
    "com.apple.ftpd" => true
    "com.apple.mdmclient.daemon.runatboot" => true
    "com.openssh.sshd" => false
    "org.apache.httpd" => true
    "com.apple.bootpd" => true
    "homebrew.mxcl.cntlm" => false
    "org.macosforge.xquartz.privileged_startx" => false
    "com.launchd.maxfiles" => false
    "com.apple.ftp-proxy" => true
    "homebew.mxcl.cntlm" => false     <-- n'existe pas
}

Comment puis-je supprimer toutes les traces de homebew.mxcl.cntlm de mon système, de sorte qu'il n'apparaisse pas en utilisant launchctl ?

5voto

klanomath Points 63400

Immédiatement après avoir supprimé le service, vous ne pourrez pas trouver le nom du service dans un fichier distinct et éditable. Il est probablement caché dans un cache.

Après un redémarrage, vous devriez pouvoir supprimer ses traces en suivant ces étapes :

  1. Recherchez le nom du service inexistant à supprimer dans les fichiers de ce répertoire : /var/db/com.apple.xpc.launchd

    sudo grep -rnw '/var/db/com.apple.xpc.launchd/' -e "homebew"
  2. Éditez le fichier trouvé par grep avec nano (la chaîne est probablement trouvée dans disabled.plist)

    sudo nano /var/db/com.apple.xpc.launchd/disabled.plist

    Déplacez le curseur sur les deux lignes incriminées (nom du service par exemple homebew.mxcl.cntlm suivi de son statut par exemple ) et supprimez chacune avec ctrlK. Appuyez sur ctrlO, et ctrlX, pour enregistrer les modifications sur le disque et quitter nano.

  3. Redémarrez à nouveau et launchctl print-disabled system ne montrera plus le service.


En raison d'un mécanisme de mise en cache agressif ou d'autres procédures système opaques, la suppression des lignes ne fonctionne pas de manière fiable avec vim ou nano (sur le système de l'OP, cela n'a pas du tout fonctionné, dans mon VM Catalina 5 tentatives sur 6 ont été réussies).

Ensuite, le fichier doit être nettoyé en Mode de Récupération :

  1. Démarrer en Mode de Récupération

  2. Dans la barre de menus, ouvrez Terminal

  3. Éditez le fichier avec nano. Les chemins dépendent du nom de votre volume principal (par exemple Macintosh HD):

    /Volumes/Macintosh\ HD/usr/bin/nano /Volumes/Macintosh\ HD//var/db/com.apple.xpc.launchd/disabled.plist
  4. Entrez reboot pour démarrer normalement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X