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
如果标准输入中没有任何非空的字符,则不运行命令;默认情况下即使标准输入没有非空字符,命令也会被运行一次
awk '{print $2}' $fileName : 一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段,第二个字段即 pid号,过滤出pid号
比如有这样一个文件
a1 b1 c1 d1
a2 b2 c2 d2
执行的结果是,输出
b1
b2
-r, --no-run-if-empty
如果标准输入中没有任何非空的字符,则不运行命令;默认情况下即使标准输入没有非空字符,命令也会被运行一次