我遇到了一些在Ubuntu 10.04.3 LTS上陷入D状态的进程的问题。
他们自11月5日(今天是12月6日)以来一直处于这种状态。我知道这些是不间断的睡眠状态,通常与等待来自硬盘等硬件的数据有关。这是一个生产服务器,所以重新启动是最后的手段,是否有人能够阐明这些过程可能是什么?
这是来自ps -aux
www-data 22851 0.0 0.0 0 0 ? D Nov05 0:00 [2637.64]
www-data 26306 0.0 0.0 4008 12 ? D Nov05 0:00 ./2.6.37
www-data 26373 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2
www-data 26378 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2
这是ps axl | awk '$10 ~ /D/'
的输出以获取更多信息。
0 33 22851 1 20 0 0 0 econet D ? 0:00 [2637.64]
1 33 26306 1 20 0 4008 12 ec_dev D ? 0:00 ./2.6.37
1 33 26373 1 20 0 4008 12 ec_dev D ? 0:00 ./n2
1 33 26378 1 20 0 4008 12 ec_dev D ? 0:00 ./n2
有没有办法杀死这些?重新启动时是否处于此状态的进程导致任何问题?
答案 0 :(得分:20)
这是进程的可怕不可中断(TASK_UNINTERRUPTIBLE)状态。这是一个状态,在该状态开始等待,完成之前,该过程不会对信号作出反应。 不幸的是,这是一种必要的恶魔请参阅here和此处What is an uninterruptable process?。
我的回答是重启系统 重启会导致任何问题吗? 很难说,它可能不会。处于D状态的进程可能必须执行一些重要的更新,如果您重新启动它将不会 如果您真的无法重新启动,请尝试查找进程正在等待的磁盘,并通过打开,关闭,读取/写入磁盘来查看磁盘是否正常工作
答案 1 :(得分:4)
不 - 你不能杀死他们,期间。 kill -9
也不起作用。它不是内核bug,而是设计的。所有信号都被阻止,直到这些进程离开D状态。它们要么离开D状态,要么系统重新启动。不,重启与这些家伙没有任何问题。
这类问题的常见罪魁祸首是像cdrom这样的可移动媒体设备。该设备可能有缺陷,或者有人找到了做蠢事的方法。