Wie starte ich startd OS X ohne Neustart?

20619
hatmatrix

Wenn ich Zotero / Firefox starte, stürzen sie oft ab und es bleiben Zombie-Prozesse übrig. Danach kann ich keine neuen Instanzen von Zotero oder Firefox öffnen. Ich möchte diese Zombie-Prozesse loswerden, anstatt neu zu starten, also für <pid>den Zombie-Prozess,

$ ps -p <pid> -o ppid= 

gibt mir das <parent_pid>und

ps aux | awk -v PID=<parent_pid> '$2 == PID ' 

sagt mir, dass der übergeordnete Prozess /sbin/launchdfür Benutzer ist crippledlambda.

Gibt es eine Möglichkeit, das System neu zu starten, ohne mein System zu töten?

sudo kill -1 <parent_pid> 

tut nichts. Ich habe versucht, dies in ein Skript zu schreiben und es mit sudofolgenden Anweisungen auszuführen :

for i in `launchctl list | grep launchd | awk -v PID=<parent_pid> '$1==PID { print $NF }'`; do `launchctl stop $i && launchctl start $i` ; done 

und dies lässt offensichtlich (?) mich mit einem nicht reagierenden grauen Bildschirm zurück, so dass ich trotzdem neu starten muss. Vielen Dank im Voraus für Ihre Vorschläge.

13
Warum töten Sie launchd statt der übrig gebliebenen Prozesse selbst? launchd ist ein Kernbestandteil der Benutzersitzung. Selbst wenn Sie es erneut starten könnten, wäre die neue Instanz nicht das übergeordnete Element aller * anderen * Prozesse, für die sie verantwortlich ist, wie z. B. Finder, Dock usw. Gordon Davisson vor 11 Jahren 0
@ Gordon, du kannst keine Zombie-Prozesse töten, also musst du dem Elternteil nachgehen, es sei denn, mir fehlt etwas. hatmatrix vor 11 Jahren 0
Sind sie wahr [Zombies] (http://en.wikipedia.org/wiki/Zombie_process) (dh Prozesse, die beendet wurden, deren Exit-Status jedoch nicht gelesen wurde)? Wenn dies der Fall ist, ist etwas viel tieferes falsch, da "launchd" die Ausgangszustände der Kinder immer sofort lesen sollte. Wenn sie nicht wirklich Zombies sind, sollten Sie sie töten. In jedem Fall wird das Töten von `launchd` mehr Probleme verursachen, als es löst. Gordon Davisson vor 11 Jahren 0

2 Antworten auf die Frage

15
Mena Ortega

Die richtige Art, Start-Daemons zu stoppen und zu starten, ist launchctl unload .

Zum Beispiel:

Sie können einen Start-Daemon-Dienst mit dem Unterbefehl für das Entladen von launchctl stoppen .

$ sudo launchctl unload /System/Library/LaunchDaemons/<daemon name>.plist 

So starten Sie einen deaktivierten oder gestoppten Start-Daemon:

$ sudo launchctl load /System/Library/LaunchDaemons/<daemon name>.plist 

★ Seien Sie vorsichtig bei der Deaktivierung von Start-Daemons - vor allem den offiziellen Apple-Modellen. Dies kann dazu führen, dass Ihr System nicht mehr booten kann, bis Sie im abgesicherten Modus starten und es manuell erneut aktivieren. Sie beenden ein launchctl nicht wie ein normaler Prozess, da es Ihr System potenziell abtöten kann, wie Sie es erlebt haben.

> mehr Infos zu launchctl hier . (Apple launchctl-Manpage)

Sorry, ist das "com.apple.bsd.launchdadd.plist"? Ich sehe `launchd` nicht genau. Und danke für die Warnung ... hatmatrix vor 11 Jahren 0
Zum späteren Nachschlagen funktionieren diese Befehle auch mit `scrun simctl spawn ' sudo launchctl entladen… `. Die plist-Dateien befinden sich unter `$ (xcode-select -p) / Platforms / iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator.sdk / System / Library / LaunchDaemons /` Leo Natan vor 7 Jahren 0
1
ajostergaard

Von der launchd-Manpage:

Sie können launchd nicht direkt aufrufen.

Selbst wenn Sie damit aufhören könnten, könnten Sie es nicht starten, so dass die Antwort lautet, dass es keinen Weg gibt.

Warum das Downvote? Mein Beitrag beantwortet die gestellte Frage richtig. Zugegeben, der andere Beitrag ist konstruktiver, aber er beantwortet die eigentliche Frage nicht wie in dem Titel des Beitrags! ajostergaard vor 6 Jahren 0
Der andere Beitrag beantwortet die Frage. DavidPostill vor 6 Jahren 0
Nein, das sagt nicht, wie man Daemons neu startet und nicht selbst startet. ajostergaard vor 6 Jahren 1
achselzucken was auch immer. In jedem Fall ist es nicht konstruktiv, über Downvotes zu klagen. Die Leute denken eindeutig, dass Ihre Antwort nicht nützlich ist. DavidPostill vor 6 Jahren 0
lol - und diese Einstellung, diese Genauigkeit spielt keine Rolle mehr, erklärt den langsamen Qualitätsverlust bei SO. Frohes neues Jahr! ajostergaard vor 6 Jahren 1