Launchd-Job nicht in der Liste, aber noch läuft

367
dgig

Ich habe einen Launchd-Job, der alle zwei Minuten ausgeführt wird, aber nicht auf der sudo launchctl list.

Ich habe die Plist-Datei geändert, sowohl den Namen der Datei als auch den Label-Schlüssel. Ich habe es nicht vorher entladen, sondern die neu benannte Datei geladen. Vielleicht ist das der Grund dafür, aber ich würde es trotzdem in der Liste erwarten.

Aber es steht nie auf der sudo launchctl listListe. Ich habe auch cronals gutes Maß geprüft .

Ich habe die anderen Benutzer überprüft. Ich sehe das Skript, das der Launchd-Job alle zwei Minuten ausführt ps aux. Gibt es eine Möglichkeit, ps auxzu sehen, durch welchen Launchd-Prozess es erzeugt wurde?

Was kann ich noch tun, um dieses Ding zu stoppen? Der Neustart des Servers muss ein letzter Ausweg sein, ebenso wie der Neustart von launchd. Wenn dies jedoch die einzige Option ist, ist dies die einzige Option.

Es gibt auch diese Frage, aber niemand hat sie beantwortet: https://apple.stackexchange.com/questions/240550/weird-launchd-behaviour-process-still-running-after-deleting-launchd-file-and-r

0

1 Antwort auf die Frage

1
SaxDaddy

Gibt es eine Möglichkeit, ps auxzu sehen, durch welchen Launchd-Prozess es erzeugt wurde?

Wenn Sie verwenden ps -ef, geben Ihnen die ersten drei Einträge in jeder Zeile die UID, PID und Parent PID eines Prozesses an. Hier ist ein Beispiel:

$ ps -ef|head -2 UID PID PPID C STIME TTY TIME CMD 0 1 0 0 30May16 ?? 25:05.63 /sbin/launchd 

Zwischen diesen dreien sollten Sie in der Lage sein, die Quelle des gesuchten Prozesses herauszufinden. Hier ist ein ziemlich offensichtliches Beispiel, in dem ich softwareupdated(den Daemon softwareupdate) suche :

Zuerst suche ich den Prozess und bestätige ihn dann mit ps -ef <some_PID>. Ich habe mich angewöhnt, die Suche grep -v grepzu beenden, um grep von meinen Ergebnissen auszuschließen

$ ps -ef|grep softwareupdated|grep -v grep 200 3711 1 0 30May16 ?? 6:45.49 /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated $ ps -ef 3711 UID PID PPID C STIME TTY TIME CMD 200 3711 1 0 30May16 ?? 6:45.49 /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated 

Die übergeordnete PID ist nummeriert, 1daher überprüfe ich Folgendes:

$ ps -ef 1 UID PID PPID C STIME TTY TIME CMD 0 1 0 0 30May16 ?? 25:08.24 /sbin/launchd 
nett! Lief wie am Schnürchen. Und es stellte sich heraus, dass es unter einem anderen Benutzer war - ich hatte angenommen, dass "sudo launchctl list" alles zeigen würde, aber es ist pro Benutzer. Lebe und lerne. Danke für Ihre Hilfe! dgig vor 7 Jahren 0