小编ser*_*ant的帖子

Linux 如何“杀死”一个进程?

我常常感到困惑的是,尽管我从事计算机专业工作几十年,Linux 工作十年,但我实际上将操作系统的大部分功能视为黑匣子,与魔术没什么两样。

今天我想到了这个kill命令,虽然我每天多次使用它(无论是“正常”还是-9风格),我必须承认我完全不知道它在幕后是如何工作的。

在我看来,如果一个正在运行的进程被“挂起”,我会调用kill它的 PID,然后它突然不再运行了。魔法!

那里到底发生了什么?联机帮助页谈论“信号”,但这肯定只是一种抽象。发送kill -9到进程不需要进程的合作(如处理信号),它只是将其杀死。

  • Linux 如何阻止进程继续占用 CPU 时间?
  • 是否从调度中删除?
  • 它是否断开进程与其打开的文件句柄的连接?
  • 进程的虚拟内存是如何释放的?
  • 内存中是否有一个全局表之类的东西,Linux 保留对进程占用的所有资源的引用,当我“杀死”一个进程时,Linux 只是简单地遍历该表并一个一个地释放资源?

我真的很想知道这一切!

process kill process-management

94
推荐指数
1
解决办法
2万
查看次数

标签 统计

kill ×1

process ×1

process-management ×1