Mit htop kann ich Bäume von Prozessen in der Shell gut sehen. Ich kann Prozesse beenden, F9 (KILL)
indem ich drücke und dann auswähle, welches Signal (z. B. 15 SIGTERM
) ich zum Beenden an einen Job senden möchte.
Dadurch kann ich jedoch jeweils nur einen Prozess beenden. Gibt es eine Möglichkeit, einen vollständigen Baum von Prozessen mit zu töten htop
?
Sie könnten
htop
dens
Befehl entführen . Inhtop
wird durch Drücken vons
aufgerufenstrace -p <the-pid-of-the-selected-process>
.Dann können Sie einen
strace
Befehl erstellen, der Folgendes enthält:Und legen Sie es in ein Verzeichnis wie
~/.htop-hijack
und rufen Sie htop auf als:s
Wennstrace
Sie dann drücken , wird dieser Befehl anstelle von aufgerufen (Sie müssen Esc drücken, um anschließend zum Hauptbildschirm zurückzukehren).quelle
Es gibt seit langem eine Funktion dafür, die jedoch bis 2018 im Handbuch fehlte: Drücken Sie die
c
Taste, um den aktuell hervorgehobenen Prozess sowie alle untergeordneten Prozesse auszuwählen. Dann gelten Operationen, die für ausgewählte Prozesse gelten (z. B. das Beenden mit demk
Schlüssel), für den Prozess und seine untergeordneten Prozesse.Dies ist jedoch nicht atomar. Wenn neue Kinder zwischen dem Moment, in dem Sie drücken,
c
und dem Moment, in dem der Kernel alle Prozesse beendet hat, erzeugt werden, werden sie nicht getötet und höchstwahrscheinlich wieder mit dem Init-Prozess verbunden. Dies liegt daran, dass htop die ausgewählten Prozesse wiederholt und nacheinander beendet.Ich habe vor einiger Zeit einen Patch vorgeschlagen , um htop eine Funktion zum Töten von Atomgruppen hinzuzufügen, aber die Implementierung war nicht einvernehmlich genug, um sie zusammenzuführen. Damit ist es möglich, eine ganze Prozessgruppe atomar von htop abzutöten. Das ist nicht genau das Gleiche wie das Töten eines ganzen Baumes, aber AFAIK, der Kernel bietet keine Möglichkeit, einen beliebigen Baum atomar zu töten.
quelle