killall
先用ps查找出需要杀掉的进程
ps -ef |grep 进程名称
比如我想杀掉 httpd 的进程
[root@linx]# ps -ef | grep httpd
root 21982 21885 0 21:06 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 21983 21982 0 21:06 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 21984 21982 0 21:06 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 21999 21982 0 21:06 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
root 22321 19229 0 21:06 pts/0 00:00:00 grep --color=auto httpd
查找出来的进程很多,如果想一次性杀掉,可以用 killall,再去查看进程就被杀掉了
[root@linx]# killall -9 httpd
[root@linx]# ps -ef | grep httpd
root 22781 19229 0 21:08 pts/0 00:00:00 grep --color=auto httpd
pkill
pkill 和 killall 用法差不多,也是根据进程名称来杀掉全部
pkill -9 httpd
[root@linx]# ps -ef | grep httpd
root 23284 23216 0 21:09 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 23290 23284 0 21:09 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 23292 23284 0 21:09 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 23294 23284 3 21:09 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
root 23377 19229 0 21:09 pts/0 00:00:00 grep --color=auto httpd
[root@linx]# pkill -9 httpd
[root@linx]# ps -ef | grep httpd
root 23680 19229 0 21:09 pts/0 00:00:00 grep --color=auto httpd
kill
kill 是用于杀掉单个进程,根据进程的 PID, ps -ef查出来的第二列就是 PID
[root@linx]# ps -ef | grep httpd
root 24431 24361 0 21:11 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 24432 24431 0 21:11 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 24433 24431 0 21:11 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 24445 24431 0 21:11 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
root 24519 19229 0 21:11 pts/0 00:00:00 grep --color=auto httpd
[root@linx]# kill -9 24431
这里 kill 是杀掉单个进程 PID,如果想杀掉全部的,需配合 awk 命令
[root@linx]# ps -ef | grep httpd | awk ‘{print $2}’ | xargs kill -9
[root@linx]# ps -ef | grep httpd
root 26664 19229 0 21:15 pts/0 00:00:00 grep --color=auto httpd
参数说明
ps -ef 是 linux 里查看所有进程的命令
grep httpd 所有含有关键字 ”httpd” 的进程
awk ‘{print $2}’ 输出第二列的PID
xargs 是将获取到的多个PID标准输入转为命令行参数
kill -9 杀掉xargs获取到的对应的PID
如果能准确知道进程名称,可以直接用 killall 和 pkill ,如果是模糊匹配进程名称,就用最后一个
[root@linx]# ps -ef | grep 进程名称 | awk ‘{print $2}’ | xargs kill -9