我用来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
以暂停这些进程。