Wie kann htop verwendet werden, um einen Prozess und alle seine untergeordneten Prozesse anzuhalten?

Wie kann htop verwendet werden, um einen Prozess und alle seine untergeordneten Prozesse anzuhalten?

Ich recollindiziere Dateien und es greift zu ungünstigen Zeiten.

Wenn ich htopdie Ansicht mit F5 in eine Baumansicht ändere und die Prozessliste filtere, sehe ich einen laufenden Hauptprozess und darunter untergeordnete Prozesse. Wenn ich F9 drücke, um eine Beendigungsoption auszuwählen, scheint es nicht auf die SIGTERMOption zu reagieren, also muss ich die SIGKILLOption verwenden.

Gibt es eine Option zum Anhalten oder Stoppen des übergeordneten Prozesses und aller seiner untergeordneten Prozesse, anstatt sie direkt zu beenden?

Antwort1

Seit Version2.0.0(erschienen 2016), können Sie drücken, cum den Prozess und seine untergeordneten Prozesse zu markieren. Dies wird in der integrierten Hilfe erwähnt, die unter angezeigt wird h.

Anschließend können Sie drücken k, um ein Signal an die markierten Prozesse zu senden. Ihnen wird eine Liste aller möglichen Signale angezeigt, aus denen Sie auswählen können.

Antwort2

Sie können wählen, ob Sie das Signal senden möchten SIGTSTPoder SIGSTOP:

  • SIGTSTP: Ist das Signal, das gesendet wird, wenn Sie Ctrl+ drücken Z. Dadurch wird der Prozess angehalten und gestoppt. Sie können ihn mit bg(setzt ihn im Hintergrund fort) oder fg(setzt ihn fort und bringt ihn zurück in den Vordergrund) fortsetzen.

  • SIGSTOP: Stoppt den Prozess einfach. Kann nicht ignoriert oder blockiert werden. Der Prozess wird nur fortgesetzt, wenn Sie ihm ein SIGCONTSignal senden.

Antwort3

Sie können drücken Space, um einen Prozess zu markieren. Der Kill-Befehl gilt für alle markierten Prozesse.

Es gibt keine einfache Möglichkeit, einen Prozess und seine untergeordneten Prozesse zu markieren, aber die Strukturansicht ( t) sollte sie zusammenhängend auflisten.

Je nachdem, wie recoll ausgeführt wird, können die Prozesse in ihren eigenenProzessgruppe. Wenn dies der Fall ist, können Sie kill -STOP -1234sie alle mit anhalten, wobei 1234 die Prozessgruppen-ID ist (normalerweise, aber nicht notwendigerweise die Prozess-ID des ursprünglichen Prozesses in der Gruppe). Sie können mit und ps -o pid,ppid,pgid,comm -C recolldann prüfen, ps -o pid,ppid,pgid,comm ww | grep -v recollob sich noch weitere Prozesse in der Prozessgruppe befinden. Htop hat keine Schnittstelle zu Prozessgruppen.

Wenn alle Prozesse aufgerufen werden recoll, ist es einfacher, die Prozesse nach Namen zu filtern. Verwenden Sie in htop den Befehl „Filter“, dann können Sie die Prozesse, die Sie beenden möchten, einfach markieren. Führen Sie in der Befehlszeile „Aus“, ps $(pgrep recoll)um die übereinstimmenden Prozesse aufzulisten. Wenn Sie mit der Liste zufrieden sind, führen Sie „Aus“, pkill -STOP recollum diese Prozesse anzuhalten.

verwandte Informationen