Linux 杀进程指令详解:`kill -9 PID` 和 `kill -15 PID` 有什么区别?


Linux 杀进程指令详解:kill -9 PIDkill -15 PID 有什么区别?

在日常使用 Linux 的过程中,开发者或系统管理员经常会遇到需要终止某个进程的情况。这时候,kill 命令就派上用场了。但你有没有想过,为什么有时候用 kill -9,有时候用 kill -15?它们到底有啥区别?这篇文章我们就来彻底搞清楚!


一、kill 命令是什么?

kill 命令并不一定意味着"杀死"进程,它本质上是向某个进程发送一个信号(signal),然后由进程决定怎么处理这个信号。

基本语法如下:

bash 复制代码
kill -SIGNAL PID

其中:

  • SIGNAL 是发送给进程的信号编号或名称;
  • PID 是进程号。

二、kill -15 PID:温和的方式

当你执行:

bash 复制代码
kill -15 PID

其实你是向进程发送 SIGTERM(信号编号15),表示请求进程自己终止。这是 Linux 中默认的终止信号,等价于:

bash 复制代码
kill PID

如果这个进程对 SIGTERM 有设定自己的处理逻辑(比如释放资源、写日志、关闭文件等),它可以:

  • 自定义处理逻辑后退出;
  • 忽略这个信号;
  • 延迟处理。

特点:

  • 是一种"礼貌"的退出方式;
  • 给了进程一个"善后"的机会;
  • 推荐优先使用。

三、kill -9 PID:野蛮的终结者

当你执行:

bash 复制代码
kill -9 PID

发送的是 SIGKILL(信号编号9),它表示强制终止进程无法被捕捉、阻塞或忽略

操作系统内核会立刻将这个进程从系统中移除,不管它是否正在执行关键任务,也不会有任何善后处理。

特点:

  • 绝对有效;
  • 无法恢复或拯救;
  • 可能会造成数据丢失或资源未释放(例如未写入的缓存、未关闭的文件等);
  • 仅在进程无响应或kill -15失败时使用。

四、什么时候该用哪个?

场景 推荐使用
正常终止一个可控的程序 kill -15(或 kill
程序卡死、无响应 尝试 kill -15,若无效再用 kill -9
批处理或脚本中杀掉多个进程 仍应先用 kill -15,保持良好习惯
不希望进程进行任何清理逻辑 kill -9

五、总结

  • kill -15(SIGTERM):温和终止,允许进程自我清理,推荐优先使用。
  • kill -9(SIGKILL):强制终止,直接由系统杀死进程,无清理过程。

它们的主要区别就在于:一个是"请求",一个是"命令";一个可以被处理,另一个不可商量。


在面试中问到怎么回答这种?

面试官问你:"kill -9kill -15 有什么区别?"

你可以这样回答:

kill -15 发送的是 SIGTERM 信号,是一种温和的方式,请求进程自己退出,它可以被捕获并做一些清理操作;而 kill -9 发送的是 SIGKILL 信号,是一种强制终止方式,无法被进程捕获或忽略,直接由内核终结该进程。一般我们推荐优先使用 kill -15,如果进程无法响应才使用 kill -9

相关推荐
Johny_Zhao2 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
小毛驴8503 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
一心0924 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上4 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊4 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
tan180°5 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
代码老y5 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程5 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9985 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
你想考研啊8 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins