如何使用 htop 来挂起一个进程及其所有子进程?

vfc*_*sts 5 process-management htop

我用来recoll索引文件,但它在不合时宜的时候启动了。

当我使用htopF5 将视图更改为树视图并过滤进程列表时,我看到一个主进程正在运行,其下有子进程。当我按 F9 选择终止选项时,它似乎没有响应该SIGTERM选项,因此我必须使用该SIGKILL选项。

是否可以选择暂停或停止父进程及其所有子进程,而不是直接杀死它?

iva*_*eev 6

自版本2.0.02016年发布)以来,您可以按c来标记进程及其子进程。上显示的内置帮助中提到了这一点h

然后您可以按k向标记的进程发送信号;您将看到所有可能的信号列表以供选择。


Gil*_*il' 1

您可以按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以暂停这些进程。