nonono.不要使用kill-9"

admin 2026-10-23 22:47:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

no no no. 不要使用kill -9

原创

sudo请慎用
sudo请慎用

Linux学习

2026年6月29日 09:09
福建

在小说阅读器读本章

去阅读

几乎每个 Linux 开发者都做过同一件事。

程序卡住了。

SSH 变得很慢。

某个进程无法退出。

没有多想,直接输入:

kill -9 <PID>

进程瞬间消失。

问题解决了?

不一定。

事实上,Unix 资深开发者几十年来一直在给同样的建议:

“不,不,不。不要使用 kill -9。”

kill 实际上做了什么

尽管名字是 kill,kill 命令并不一定会“杀死”任何东西。

它发送的是一个 signal(信号) 给进程。

不同的 signal 表示不同的请求。

默认信号是:

kill PID

这等价于:

kill -15 PID

或者:

kill -SIGTERM PID

SIGTERM 是一种礼貌的终止请求。应用程序收到信号后可以决定如何关闭自身。它可以关闭文件、刷新缓冲区、释放锁、通知子进程,并在退出前清理资源。

而 kill -9 发送的是 SIGKILL。

这个信号不会被应用程序接收到。

kernel 会立即移除该进程的执行。

程序没有任何机会进行清理。

为什么 kill -9 是危险的

当进程收到 SIGKILL 时,一切都会立即停止。

这意味着它无法:

  • 关闭 socket 连接
  • 保存缓冲数据
  • 删除临时文件
  • 释放文件锁
  • 通知子进程
  • 恢复终端设置
  • 完成事务

根据程序正在做的事情,这可能导致系统处于不一致状态。数据库、编辑器、服务器和构建工具尤其容易受影响,因为它们通常会维护文件、缓存或进行中的事务。

可以这样理解:

SIGTERM 是请求某人离开房间。

SIGKILL 是直接切断整栋楼的电源。

两者都会让人消失,但只有一个允许对方把东西收好。

更好的处理策略

大多数 Unix 管理员遵循一个简单的升级路径。

先温和处理。

kill PID

或者:

kill -15 PID

等待几秒。

如果进程忽略请求,再尝试发送 SIGINT:

kill -2 PID

这等同于在终端按 Ctrl+C。

只有在进程完全卡死时,才考虑:

kill -9 PID

正如 Unix 中常见的建议:

先发送 15。等待。如果不行,发送 2。如果还不行,发送 1。只有最后才考虑更强手段。

为什么程序会忽略 SIGTERM

有时候 kill 看起来没有作用。

但这并不一定代表进程坏了。

应用程序可以捕获 SIGTERM,并延迟退出,例如:

  • 完成正在处理的请求
  • 将数据写入磁盘
  • 关闭网络连接
  • 完成事务

一些服务器会主动花几秒时间进行优雅关闭。

也有一些进程可能卡在 I/O 或内核操作中,从而无法立即退出。

耐心通常比直接使用 kill -9 更好。

什么时候可以使用 kill -9

它确实有合理用途。

例如:

  • 进程完全卡死
  • 不响应 SIGTERM
  • 忽略 SIGINT
  • 无法通过正常方式中断
  • 在清理失败应用程序

在这些情况下,SIGKILL 是最后手段。

这正是它被设计出来的用途。

关键点是:最后手段不等于第一选择。

Unix 的哲学

Unix 一直鼓励程序自己做好清理工作。

优雅关闭可以保护数据、保持一致性,并让应用程序有机会让系统保持健康状态。

kill -9 会绕过这一切。

所以,下次当进程拒绝退出时,记住 Unix 社区流传多年的建议:

不,不,不。不要使用 kill -9。

先使用 SIGTERM。

给应用程序一个正常退出的机会。

只有在极少数情况才使用 SIGKILL。

这不仅是最佳实践——也是 Unix 设计的方式。


nonono.不要使用kill-9" 网络安全文章

nonono.不要使用kill-9"

本文详细解释了Linux中kill命令的工作原理,强调kill-9(SIGKILL)的危险性,因为它会立即终止进程而不允许其进行清理操作,可能导致数据丢失或系统不一致。文章建议优先使用SIGTERM(-15)和SIGINT(-2)等温和信号,并提供了分步骤的进程终止策略,仅在进程完全无响应时才将SIGKILL作为最后手段。
开源项目|HaE文件版1.0版本发布" 网络安全文章

开源项目|HaE文件版1.0版本发布"

HaE文件版1.0是一款基于正则引擎的VSCode扩展工具,通过自定义规则高效扫描文件内容,实时高亮标记敏感信息,支持外部验证器进行风险评级,旨在提升漏洞与数据分析效率。适用于日志、源码等文件的安全分析,提供多线程扫描、数据面板集中展示等实战功能。
实战复盘|从弱口令到Furion定时任务RCE的漏洞链" 网络安全文章

实战复盘|从弱口令到Furion定时任务RCE的漏洞链"

该文档详细记录了作者在一次微信小程序渗透测试中发现后端Swagger页面存在弱口令漏洞,通过横向扩展发现同一CMS系统其他子域名存在相同弱口令,进而利用Furion框架定时任务功能实现远程代码执行的全过程。文档展示了从信息收集、漏洞验证到利用AI辅助编写攻击代码、通过HTTP外带数据的关键步骤,并总结了弱口令横向测试、出网验证等实战经验。
2026年1—6月我国6G产业发展全景综述" 网络安全文章

2026年1—6月我国6G产业发展全景综述"

本文全面综述了2026年1月至6月我国6G产业的发展全景。在国家顶层战略的统筹部署下,6G已从技术攻关转向原型样机研发和产业体系培育。上半年的核心进展包括:国家发改委、工信部等多部委建立协同工作机制,完成了全球首个6G连续中频段频谱批复,并印发《6G创新发展部省协同试点专项行动》,旨在攻克核心技术、补齐产业链短板,并在沉浸式通信、先进制造等五大场景开展试点,为2030年6G全国规模商用奠定坚实基础。
评论:0   参与:  0