我发现自己必须定期发送kill -STOP
一百万个流程,但它们都来自同一个父级。有没有更聪明的方法来做到这一点?
答案1
尝试pkill
:
pkill -STOP -P the_ppid
如果你没有pkill
,还有另一种选择:
ps -o pid --ppid the_ppid --no-heading | xargs kill -STOP
答案2
它们可能都在同一个进程组中?如果是这种情况,您只需使用常规的旧 kill 命令,并将 pid 设为负数。
因此要找到所有 apache 进程的进程组:
$ sudo ps -e -o cmd,pgrp | grep apache
/usr/sbin/apache2 -k start 24065
/usr/sbin/apache2 -k start 24065
/usr/sbin/apache2 -k start 24065
/usr/sbin/apache2 -k start 24065
然后向整个进程组发送信号:
$ sudo kill -KILL -24065