Entfernen Sie einen Agenten von launchd

Die überwiegende Mehrheit der Mac-Benutzer muss launchd und launchctl nicht manuell anpassen, aber es gibt Zeiten, in denen Sie eine Anwendung in Mac OS X deinstallieren oder nicht mehr verwenden und ein Service-Agent unnötigerweise weiterhin launchd lädt. Das ist ärgerlich, aber diese bösartigen Agenten können einfach über die Befehlszeile entfernt werden, also starten Sie Terminal, und los geht's. Darüber hinaus gibt es Situationen, in denen fortgeschrittene Benutzer aus irgendeinem Grund in launchd geladene Agenten optimieren möchten. In jedem Fall erfahren Sie, wie Sie Elemente in launchd auflisten, wie Sie sie aus Launchd in OS X entfernen und wie Sie Agenten auf dem Mac in launchd neu laden.

Sie müssen ein wenig Verständnis und Komfort haben, um die Befehlszeile und das Terminal richtig zu verwenden. Dies ist ideal für fortgeschrittene Benutzer, die sich mit Launch-Daemons auskennen und diese aufspüren können, was manchmal nur eine Frage ist Sie finden einen im Activity Monitor von Mac OS X oder mit dem Befehl launchctl, den wir in Kürze besprechen werden. Wenn Sie sich dazu entschließen, die Änderung rückgängig zu machen, können Sie den Dienst oder Daemon auch mit einem anderen Befehl in launchd laden, wodurch der ursprüngliche Entfernungsschritt effektiv rückgängig gemacht wird. Lasst uns anfangen:

Entfernen von Launch Agents & Services von Launchd in OS X

So entfernen Sie einen Dienst von launchd . Starten Sie Terminal und verwenden Sie dann die folgende Syntax mit dem Befehl launchctl:

launchctl remove name

Wenn ich beispielsweise einen Dienst namens "com.annoying.service" entfernen möchte, lautet die Syntax:

launchctl remove com.annoying.service

Möglicherweise müssen Sie den Befehl mit sudo voranstellen, um den Dienst zu entfernen. In diesem Fall lautet der Befehl:

sudo launchctl remove com.annoying.service

Mit dem sudo-Präfix müssen Sie ein Administrator-Passwort eingeben, bevor der Befehl ausgeführt wird.

Wie zu sehen, was in Launchd geladen wird

Sie können auch überprüfen, was in launchd geladen wird, indem Sie die folgende Befehlszeichenfolge verwenden:

launchctl list

Dieser Befehl listet alle Agenten und Jobs auf, die in launchd geladen sind, sodass Sie die ausgeführten Agenten einfach bearbeiten können. Weil es eine Menge Informationen auf den Bildschirm auf einmal ablegt, möchten Sie es vielleicht wie folgt durch die mehr oder weniger Befehle leiten:

launchctl list |more

Auf diese Weise können Sie mit der Eingabetaste langsamer durch die Liste navigieren.

Wenn Sie allgemein den Service kennen, den Sie suchen, können Sie auch "grep" verwenden, um den genauen Agenten-Service zu finden, verwenden wir als Beispiel "mdworker":

launchctl list |grep mdworker

Dies würde nur die folgenden Launchagents zurückmelden:

- 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

Bei einigen Diensten kann beim Dumping der Liste auch die PID (Prozess-ID) des aktiven Dienstes angezeigt werden.

Laden eines Agenten Zurück in launchd

Wenn Sie möchten, dass Sie einen Dienst wieder aktivieren und erneut in launchd laden möchten, verwenden Sie das Flag 'load':

launchctl load com.example.service.to.load

Einige Agenten werden sofort ohne Probleme geladen. Bei anderen muss der Mac möglicherweise neu gestartet werden, bevor der geladene Dienst wieder wie beabsichtigt funktioniert. Manchmal reicht es jedoch auch aus, sich an- und abzumelden.