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

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

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

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

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

答案1

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

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

答案2

您可以选择发送信号SIGTSTPSIGSTOP

  • SIGTSTPCtrl: 是按+时发送的信号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以暂停这些进程。

相关内容