Kill-Prozess, wenn sich die PID ständig ändert

9

Wenn ich ausstelle

ps aux | grep mtp

Ich bekomme

ubuntu- + 15934 0,1 0,0 519848 7068? Sl 21:13 0:00 / usr / lib / gvfs / gvfsd-mtp --spawner: 1.9 / org / gtk / gvfs / exec_spaw / 20

Die PID ist in diesem Fall also 15934. Aber jedes Mal, wenn dies ausgeführt wird, ist die PID anders. Gibt es eine andere Möglichkeit, einen Prozess als durch PID zu beenden?

Bachalo
quelle
Unterschiedliche PID → unterschiedlicher Prozess.
Phk
3
Wenn sich die PID ständig ändert, wird der Prozess ständig beendet und ein neuer Prozess mit demselben Namen wird gestartet. Sie möchten also wahrscheinlich den übergeordneten Prozess verfolgen, der die untergeordneten Prozesse startet. Schauen Sie ps -ely | awk 'NR==1||/mtp/'sich die PPID-Spalte an
icarus
1
Ein besserer Ansatz wäre zu verstehen , was eigentlich los ist , und fix , dass statt. Finden Sie heraus, warum der MTP-Mount nicht funktioniert, indem Sie die Protokolle usw. überprüfen und beheben, dass er tatsächlich funktioniert. Finden Sie heraus, warum GVFS den MTP-Mount überhaupt versucht, und verhindern Sie, dass er benötigt wird. Finden Sie heraus, wo MTP Automount stattfindet, und deaktivieren Sie es. Finden Sie heraus, warum GVFS überhaupt benötigt wird, und stoppen Sie dies. Im Gegensatz dazu, Prozesse ohne weiteres zu beenden, ohne sie zu verstehen, und infolgedessen die GNOME-Desktop-Anwendungen zu beschädigen.
JdeBP

Antworten:

8

Wahrscheinlich gibt es einen übergeordneten Prozess, der untergeordnete Prozesse beendet und neue untergeordnete Elemente gibt. Sie können pstree verwenden, um den übergeordneten Prozess zu finden:

pgrep mtp | xargs -i pstree -ps {}

Alternativ können Sie die ppid-Option von ps verwenden:

pgrep mtp | while read line; do ps -p $line -o ppid; done

Dann können Sie den übergeordneten Prozess beenden

Serhat Cevikel
quelle
0

Sie können pkill mtp verwenden oder -9 töten pidof mtp

Bitte beachten Sie, dass beide Befehle bei mehreren MTP-Prozessen alle MTP-Prozesse im System beenden.

Rami Rosen

Rami Rosen
quelle
5
Dies oder killall mtpwird mtp töten, möglicherweise gibt es jedoch einen anderen Prozess, der ständig neue mtp-Prozesse als Kinder forket. Ohne zu töten, nützt dies nichts.
Serhat Cevikel
0

Ich habe ausgestellt

ps aux | grep mtp

Das gab mir ein paar MTP-bezogene Prozesse und verglichen mit der Kamera montiert und unmontiert, um den spezifischen Prozess zu erhalten

und dann

pkill -9 gvfsd-mtp

macht den Trick.

Aber ich gehe davon aus, dass die obige Antwort auch funktioniert :)

Bachalo
quelle