linux下杀掉指定名称进程(killall 、kill 、pkill)

本文介绍在Linux环境下如何使用ps、kill、killall及pkill等命令进行进程管理,包括查找特定进程、批量杀死进程和终止单个进程的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
### 如何在 Linux 中使用 `kill` 命令终止进程 #### 使用默认信号 SIGTERM 终止进程 当不指定任何选项时,`kill` 命令会向目标进程发送默认的 `SIGTERM` (信号编号 15),该信号通知进程优雅地退出。例如: ```bash kill 1234 ``` 上述命令表示向 PID 为 1234 的进程发送 `SIGTERM` 信号[^1]。 --- #### 使用 `-9` 或 `SIGKILL` 强制终止进程 如果目标进程未能响应 `SIGTERM`,或者需要立即强制停止进程,则可以使用 `-9` 参数来发送 `SIGKILL` 信号。此操作不可被忽略或捕获,因此能够强行结束进程。示例如下: ```bash kill -9 1234 ``` 这里,`-9` 表示发送 `SIGKILL` 信号,它将直接中断并销毁目标进程及其子进程[^2]。 --- #### 列出可用信号 为了查看所有可发送的信号名称及其对应的数值,可以运行以下命令: ```bash kill -l ``` 这将返回一系列支持的信号列表,便于用户选择适合当前场景的具体信号类型[^3]。 --- #### 同时终止多个进程 假如存在多个需要处理的目标进程 ID,可以直接在同一行中罗列它们作为参数传递给 `kill` 命令。比如下面的例子展示了如何一次性清除两个不同 PIDs 所代表的服务实例: ```bash kill 1234 5678 ``` 这条语句意味着分别针对这两个独立的任务发出标准关闭请求——即 `SIGTERM`。 --- #### 结合其他工具查找并杀掉特定条件下的进程 实际工作中可能遇到不知道确切 PID 号码的情况,在这种情形下先利用辅助手段定位后再执行删除动作就显得尤为重要了。一种常见方法是配合 `ps aux | grep` 查找相关内容之后再实施行动;另一种更简洁的方式则是借助专门设计用来完成此类任务的一次性指令如 `pkill` 或者 `killall` 来简化流程。 例如要杀死名字叫做 myapp 的程序的所有实例可以用如下方式实现: ```bash pkill myapp ``` 或者是按照名字匹配整个家族成员一起清理干净: ```bash killall myapp ``` 这两种替代方案都提供了比单纯依靠手动输入 id 更加高效便捷的选择途径。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值