教程简介:
一般我们在杀死一个进程的时候,通过命令 ps -aux | grep 进程名返回一个进程的进程号,然后通过 kill 杀死这个进程。
但是,如果进程的 pid 一直变化(不断被杀死并重启),那么 kill 时我们匹配的 pid 将不复存在,导致 kill 失败;
还有一些进程有多个子进程,我们想同时杀死所有相关的进程。一个一个操作起来会比较麻烦。
解决方法
如何从 ps aux 的结果中提取 pid?
如果要取出 PID 进行后面的操作,比如 kill,首先要用 tr 命令压缩列与列之间的空格,把多个空格压缩成一个,然后用 cut 命令按照空格拆分列,取出第二个位置的值,也就是 PID。然后将结果输入 kill 命令。如下所示:
kill $(ps aux | grep '进程名等标识' | tr -s ' '| cut -d ' ' -f 2)
转载请注明:汇站网 » Linux 如何杀死一个 pid 不断变化或者有多个子进程的进程?