【Linux命令】linux一行命令杀掉指定名称进程(killall 、kill 、pkill)
1.【Linux】Centos7 防火墙命令2.【Linux】linux查看端口占用情况3.【Linux命令】grep命令4.【linux】【转】压缩、解压命令5.【转】linux查看硬件配置命令6.【转】linux awk命令详解7.【Linux】ls命令8.【Linux】Linux终端常用快捷键9.【Linux】shell脚本提示‘\r’等命令不可用10.【Linux命令】检查Jar中是否包含log4j211.【Linux命令】Linux常用命令12.【Linux命令】获取linux内存、cpu、磁盘IO等信息
13.【Linux命令】linux一行命令杀掉指定名称进程(killall 、kill 、pkill)
14.【Linux命令】crontab 命令前言
常见面试题:如何用一句 linux 指令,查找到指定名称的进程并杀掉
常用的杀进程的三个指令:killall 、kill 、pkill
杀进程几种方式
killall命令用于杀死指定名字的进程(kill processes by name)
killall [参数] [进程名]
kill命令杀死指定进程PID的进程
kill [参数] [进程id]
pkill 和killall差不多,也是用于杀掉指定名称的进程
pkill [参数] [进程名]
killall
先用ps查找出需要杀掉的进程
ps -ef |grep 进程名称
比如我想杀掉 httpd 的进程
[root@VM_0_2_centos opt]# 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
killall -9 httpd
再去查看进程就被杀掉了
[root@VM_0_2_centos opt]# killall -9 httpd
[root@VM_0_2_centos opt]# 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@VM_0_2_centos opt]# 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@VM_0_2_centos opt]# pkill -9 httpd
[root@VM_0_2_centos opt]# 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@VM_0_2_centos opt]# 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@VM_0_2_centos opt]# kill -9 24431
这里 kill 是杀掉单个进程PID,如果想杀掉全部的,需配合 awk 命令
ps -ef | grep httpd | awk '{print $2}' | xargs kill -9
[root@VM_0_2_centos opt]# ps -ef | grep httpd
root 26267 26194 0 21:15 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 26269 26267 0 21:15 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 26270 26267 0 21:15 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
65534 26273 26267 0 21:15 ? 00:00:00 /opt/zbox/run/apache/httpd -k start
root 26358 19229 0 21:15 pts/0 00:00:00 grep --color=auto httpd
[root@VM_0_2_centos opt]# ps -ef | grep httpd | awk '{print $2}' | xargs kill -9
kill: sending signal to 26652 failed: No such process
[root@VM_0_2_centos opt]# ps -ef | grep httpd
root 26664 19229 0 21:15 pts/0 00:00:00 grep --color=auto httpd
[root@VM_0_2_centos opt]#
参数说明
- ps -ef 是linux 里查看所有进程的命令。
- grep httpd 所有含有关键字"httpd"的进程
- awk '{print $2}' 输出第二列的PID
- xargs 是将获取到的多个PID标准输入转为命令行参数。
- kill -9 杀掉xargs获取到的对应的PID
如果能准确知道进程名称,可以直接用killall 和pkill ,如果是模糊匹配进程名称,就用最后一个
ps -ef | grep 进程名称 | awk '{print $2}' | xargs kill -9
好学若饥,谦卑若愚
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?