正文:
一般情况下,我们通过执行命令 ps
-aux
| grep
进程名来获取某个进程的进程号,然后使用 kill
命令来终止该进程。
然而,如果进程的进程号一直在变化(因为进程被连续杀死和重启),那么我们在匹配到进程号后执行 kill
命令时,该进程号可能已经不存在了,导致 kill
操作失败。
另外,如果一个进程有多个子进程,我们想要同时终止所有相关进程,逐个操作将会非常繁琐。
为了解决这些问题,我们可以从 ps
aux
命令的输出结果中提取进程号。
首先,我们可以使用 tr
命令将各个列之间的多个空格压缩为一个空格。然后,使用 cut
命令根据空格对列进行分割,并提取第二个位置的值,即进程号。最后,将提取到的进程号作为参数传递给 kill
命令。具体操作如下所示:
kill
$(ps
aux
| grep
‘进程名等标识’ | tr
-s
‘ ‘| cut
-d
‘ ‘ -f
2)转载请注明:汇站网 » 如何在 Linux
中终止具有不断变化的 PID
或具有多个子进程的进程?