在使用 Linux 的过程中,你一定遇到过以下这些情况:
程序卡死,关不掉
服务无响应,但进程还在
CPU 被某个进程长期占满
这时,很多人的第一反应是:kill -9 一把梭。
但实际上,kill 并不只是“强制结束进程”这么简单。
用不好,可能会带来数据丢失,甚至影响系统稳定。
今天这篇文章,我们就来系统讲清楚:kill 和 killall 到底该怎么用。一、kill 是什么?
kill 的本意并不是“杀进程”,而是:向进程发送信号(signal)Linux 中,进程之间的控制,都是通过信号完成的。二、最常用的 kill 用法
1. 正常结束进程(推荐)
15 对应的信号是SIGTERM,含义是:“请你优雅地退出。”大多数程序在收到 SIGTERM 后,会做清理工作再退出。2. 强制结束进程(最后手段)
9 是SIGKILL,特点只有一句话:立即终止,无法被捕获、无法被忽略三、常见信号速查
四、一个标准的“杀进程”流程
五、killall 是什么?
如果你不知道 PID,只知道进程名,可以使用 killall。1. 按进程名结束进程
会向所有名为 nginx 的进程发送 SIGTERM。2. 强制结束指定进程名
六、kill 与 killall 的区别
建议原则:能用 kill 就不用 killall。七、常见实战场景
场景一:结束卡死程序
ps aux | grep myappkill PID
场景二:重启服务前清理进程
killall nginxsystemctl start nginx
场景三:误用 kill -9 的后果
八、kill 与 Ctrl+C 的关系
九、写在最后
关于 kill / killall,你至少应该记住:真正成熟的 Linux 使用者,不是杀得快,而是杀得稳。如果你正在系统学习 Linux 基础,理解信号机制,会对后续学习进程管理非常有帮助。如果这篇文章对你有帮助,欢迎关注、点赞、收藏、转发,最后,发给你你那不成材的朋友,让他陪你一起进步!我们下篇继续聊 Linux 基础命令。