launchtl: Gibt es eine Möglichkeit, einen Daemon nach dem Entfernen der Plist-Datei zu deaktivieren?

Ich habe versucht, einen Daemon eines Drittanbieters dauerhaft zu deaktivieren, also habe ich seine Plist-Datei aus /Library/LaunchDaemons gelöscht - und dann wurde mir klar, dass ich launchctl unloadzuerst nichts damit gemacht hatte. Ein nachträglicher Versuch ergibt "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 es versucht, launchctl listin der Hoffnung, ein Label zu bekommen, für das ich es verwenden kann, launchctl removeaber der Daemon ist nicht mehr aufgeführt.

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

Die Dokumentation ist unklar, launchctl kill com.example.productscheint aber zu funktionieren.

Antworten (1)

Um ALLE derzeit laufenden Daemons zu sehen, müssen Sie Folgendes eingeben:

sudo launchctl list

Oder sortieren Sie sie in schön getrennte com.apple:

sudo launchctl list | sort

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

sudo launchctl remove com.sassafras.KeyAccess.daemon

Wichtiger Hinweis : Wenn Sie beim Neustart des Computers keine Daemons erhalten möchten, entfernen Sie bitte die zugehörige Plist-Datei.

Huh, ich denke, wenn Sie nicht root sind, zeigt es nur die Daemons, die für/als der Benutzer gestartet wurden?
Das funktioniert bei mir eigentlich nicht. Die Einträge kommen beim Neustart zurück.
@dimadima hast du die zugehörige(n) Plist-Datei(en) entfernt? Die von Dan bereitgestellten Befehle manipulieren nur den aktuellen Zustand (der beim nächsten Booten auf das zurückgesetzt wird, was sich in /Library/LaunchDaemons befindet).
@jhfrontz yup Ich habe inzwischen gelernt, dass du das tun musst. Danke dir.
@jhfrontz also sollte der prozess launchctl unloaddann die datei löschen .plistist das richtig?
@ JohnnyQ - ja, ich denke, das ist die richtige Reihenfolge. Sehen Sie sich hier an, was bmike zu sagen hat: apple.stackexchange.com/a/37195/10389
Auf Mac OS X Server fand ich ein LaunchDaemons-Verzeichnis, das im Pfad von Server.app selbst versteckt war und Xcode auslöste. Also für andere, finden Sie alle mit einem einfachen: find / -name LaunchDaemons 2> /dev/nulllistet alle möglichen Speicherorte der .plistDateien auf ... HTH ...
Falls es jemandem hilft, es sind wirklich immer mehrere eindeutige Listen verfügbar. Alle Benutzer im Verzeichnis haben ihre eigenen, obwohl der Root-Benutzer und der angemeldete Benutzer wahrscheinlich die relevantesten sind. Sie können alle Benutzer sehen, die Prozesse mit sudo ps auxoder wie auch immer Sie bevorzugen, verwenden sudo launchctl asuser [UniqueID] launchctl list, um dann die Liste für jeden Benutzer anzuzeigen.