
我用來recoll
索引文件,但它在不合時宜的時候啟動了。
當我htop
使用 F5 將視圖變更為樹視圖並過濾進程列表時,我看到一個主進程正在運行,其下有子進程。當我按 F9 選擇終止選項時,它似乎沒有響應該SIGTERM
選項,因此我必須使用該SIGKILL
選項。
是否可以選擇暫停或停止父進程及其所有子進程,而不是直接殺死它?
答案1
自版本以來2.0.0
(2016年發布),您可以按c
來標記進程及其子進程。上顯示的內建幫助中提到了這一點h
。
然後您可以k
按 向標記的進程發送信號;您將看到所有可能的信號清單以供選擇。
答案2
您可以選擇發送信號SIGTSTP
或SIGSTOP
:
SIGTSTP
Ctrl: 是按+時發送的訊號Z。它將暫停和停止該進程,您可以使用bg
(在後台恢復)或fg
(恢復將其帶回前台)來恢復它。SIGSTOP
:簡單地停止該過程。無法忽視也無法阻止。只有當您向其發送信號時,該過程才會恢復SIGCONT
。
答案3
您可以按 來Space標記進程。 Kill 指令適用於所有標記的進程。
沒有簡單的方法來標記進程及其子進程,但樹視圖 ( t) 應連續列出它們。
根據 recoll 的運作方式,進程可能位於自己的位置行程群組。如果是,那麼您可以使用kill -STOP -1234
將它們全部掛起,其中 1234 是進程組 ID(通常但不一定是群組中初始進程的進程 ID)。您可以使用ps -o pid,ppid,pgid,comm -C recoll
, thenps -o pid,ppid,pgid,comm ww | grep -v recoll
檢查進程組中是否還有其他進程。 Htop 沒有進程組的介面。
如果所有進程都被調用recoll
,那麼更簡單的方法就是按名稱過濾進程。在htop中,使用filter命令,然後您可以輕鬆標記要殺死的進程。在命令列上運行ps $(pgrep recoll)
以列出匹配的進程。如果您對清單感到滿意,請運行pkill -STOP recoll
以暫停這些進程。