Process-Management

如何使用 htop 掛起一個程序及其所有子程序?

  • July 27, 2019

recoll用來索引文件,它在不合時宜的時候啟動。

當我使用htopF5 將視圖更改為樹視圖並過濾程序列表時,我看到一個主程序正在執行,而子程序在它下面。當我按 F9 選擇終止選項時,它似乎沒有響應該SIGTERM選項,因此我必須使用該SIGKILL選項。

是否可以選擇暫停或停止父程序及其所有子程序,而不是直接殺死它?

您可以按Space標記程序。kill 命令適用於所有標記的程序。

沒有簡單的方法來標記程序及其子程序,但樹視圖 ( t) 應該將它們連續列出。

根據 recoll 的執行方式,程序可能位於它們自己的程序組中。如果是,那麼您可以使用kill -STOP -1234將它們全部掛起,其中 1234 是程序組 ID(通常但不一定是組中初始程序的程序 ID)。您可以檢查ps -o pid,ppid,pgid,comm -C recoll, 然後ps -o pid,ppid,pgid,comm ww | grep -v recoll查看程序組中是否有任何其他程序。Htop 沒有程序組的介面。

如果呼叫了所有程序recoll,那麼更簡單的方法是按名稱過濾程序。在 htop 中,使用 filter 命令,然後您可以輕鬆地標記您想要殺死的程序。在命令行上,執行ps $(pgrep recoll)以列出匹配的程序。如果您對列表感到滿意,請執行pkill -STOP recoll以暫停這些程序。

自版本2.0.02016 年發布)以來,您可以按c標記程序及其子程序。上顯示的內置幫助中提到了這一點h

然後您可以按k向標記的程序發送信號;您將看到可供選擇的所有可能信號的列表。

引用自:https://unix.stackexchange.com/questions/366348