launchtl: wie kann man einen daemon nach dem entfernen der plist datei deaktivieren?

13

Ich habe versucht, einen Daemon eines Drittanbieters dauerhaft zu deaktivieren, daher habe ich seine plist-Datei aus / Library / LaunchDaemons gelöscht launchctl unload. Wenn Sie danach versuchen, erhalten Sie "Keine solche Datei oder kein solches Verzeichnis / nichts zum Entladen gefunden". Und natürlich kann der Daemon neu gestartet werden. Wenn ich ihn also beende, wird er neu erstellt.

Ich habe versucht, launchctl listin der Hoffnung, ein Label für die Verwendung zu bekommen, launchctl removeaber der Daemon ist nicht mehr aufgeführt.

Gibt es nach dem Neustart eine Möglichkeit, den Daemon zu vergessen und / oder die Konfigurationsdateien erneut zu scannen?

jhfrontz
quelle
Die Dokumentation ist unklar, launchctl kill com.example.productscheint aber zu funktionieren.
Abhi Beckert

Antworten:

18

Um ALLE laufenden Dämonen zu sehen, müssen Sie Folgendes eingeben:

sudo launchctl list

Und dann können Sie es entfernen, zum Beispiel:

sudo launchctl remove com.sassafras.KeyAccess.daemon
Dan
quelle
Huh, ich denke, wenn Sie nicht root sind, werden nur die Daemons angezeigt, die für / als Benutzer gestartet wurden?
Jhfrontz
2
Das funktioniert bei mir eigentlich nicht. Die Einträge werden beim Neustart wiederhergestellt.
Dmitry Minkovsky
3
@dimadima Haben Sie die zugehörigen Plist-Dateien entfernt? Die von Dan bereitgestellten Befehle ändern nur den aktuellen Status (der beim nächsten Start auf den Status in / Library / LaunchDaemons zurückgesetzt wird).
Jhfrontz
@jhfrontz yup Ich habe inzwischen gelernt, dass Sie das tun müssen. Vielen Dank.
Dmitry Minkovsky
1
Wenn es jemandem hilft, gibt es wirklich immer mehrere eindeutige Listen. Alle Benutzer im Verzeichnis haben ihre eigenen, obwohl der Root-Benutzer und der angemeldete Benutzer wahrscheinlich am relevantesten sind. Sie können alle Benutzer anzeigen, mit denen Prozesse ausgeführt werden, sudo ps auxoder die Sie verwenden sudo launchctl asuser [UniqueID] launchctl list, um die Liste für jeden Benutzer anzuzeigen.
David Smith