【问题标题】:Killing a processes (supposedly) busy in Linux kernel?在 Linux 内核中杀死一个进程(据说)很忙?
【发布时间】:2012-08-01 08:24:03
【问题描述】:

我不小心在错误的分区上触发了mountsda4 是包含sdaX扩展分区X>4,而我想挂载Fat32 分区sda7

sudo mount /dev/sda4 /media/win

现在mount 自 45 分钟以来一直很忙,并使用 100% 的 CPU 时间(两个内核中的一个)。

我怎样才能阻止或杀死那只坐骑?

我已经试过了(它的 pid 是 10155):

  • kill -TERM 10155——还有KILLUSR1USR2INT,全部无效
  • kill -STOP 10155 -- 我认为这至少可以给我一些空间,但它一直保持 100% 运行
  • renice 20 10155 -- 这至少让其他进程有一些喘息的空间。

/proc 有什么东西可以用来杀死坐骑吗?

更新:我的 Linux 是 Ubuntu 12.04 LTS,64 位。 uname -a:Linux ... 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

【问题讨论】:

  • Ubuntu 12.04 LTS,3.2.0/64 位。
  • 我现在不知道,这可能是挂载系统调用上的一个错误,在这个链接中讨论了内核 3.1 和 3.4 之间引入的一个错误:bugzilla.redhat.com/show_bug.cgi?id=835019,你可能在这个案子。此处提供了一个新补丁:lkml.org/lkml/2012/6/25/306。希望对您有所帮助
  • @TOC:感谢您发现这一点。我希望不必重新启动... 微笑
  • 你可能需要重新启动 (:, 或使用类似 (kexec 或 ksplice) 的东西,我以前没有使用过它们......祝你好运

标签: linux linux-kernel kernel signals process


【解决方案1】:

我怎样才能阻止或杀死那只坐骑?

你不能;系统调用是不间断的。您需要等到它超时或出错,假设它永远会发生。

【讨论】:

  • 这就是我所担心的。而在内核中,“无法解释”的意思是“甚至不是 Linus”或某些“超级 root 工具”?
  • 让进程在内核空间处理中断实际上是危险,因为它可能导致处理程序在监督环中运行,从而导致各种可能的漏洞。在处理中断之前,进程必须从系统调用返回。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多