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