kill 与 killall和过滤后杀掉

1.绝杀 kill -9 PID  杀掉单一进程  例如:kill -9 pid号
 
同意的 kill -s SIGKILL
 
这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
 
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
 

如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了

2.killall命令  如: killall -9 java 杀掉所有的java进程
 
killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
 
3.根据条件过滤后杀掉进程:如:ps -ef |grep simo- |
ps -ef | grep simo- | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9
多个过滤条件求并集
grep simo-  :过滤出simo-  字样
grep -v grep" 在文档中过滤掉包含有grep字符的行
awk '{print $2}'  $fileName :   一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段,第二个字段即 pid号,过滤出pid号
比如有这样一个文件
a1  b1  c1  d1
a2  b2  c2  d2
执行的结果是,输出
b1
b2
-r, --no-run-if-empty

如果标准输入中没有任何非空的字符,则不运行命令;默认情况下即使标准输入没有非空字符,命令也会被运行一次
原文地址:https://www.cnblogs.com/zyy98877/p/9252532.html