一般我们杀死一个进程都是通过命令ps -aux | grep 进程名 返回某进程的进程号,再通过kill杀掉该进程,

但如果进程的pid一直在变化(连续被杀死重启),我们匹配到的pid在kill时已经不存在了,将导致kill失败;

还有存在多个子进程的进程,我们想同时杀死所有相关进程如果一个个操作会很麻烦。

解决方法

如何从ps aux的结果中提取pid?

我们如果想要取出其中的PID,用于之后的操作,例如kill,则首先应该使用tr命令压缩各个列之间的空格,将多个空格压缩为一个,接着使用cut命令根据空格对列进行分割并取出第二个位置的值,也就是PID。然后将结果输入到kill命令。如下所示:

kill $(ps aux | grep '进程名等标识' | tr -s ' '| cut -d ' ' -f 2)