linux – 进程永久停留在D状态

提问

我有一个问题,在Ubuntu 10.04.3 LTS上陷入D状态的某些进程.

自11月5日(今天是12月6日)以来,他们一直处于这种状态.我知道这些是不间断的睡眠状态,通常与等待来自硬盘等硬件的数据有关.这是一个生产服务器,所以重新启动是最后的手段,是否有人能够阐明这些过程可能是什么?

这是来自ps -aux的D状态项的输出

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

有没有办法杀死这些?重新启动时是否处于此状态的进程导致任何问题?

最佳答案

这是进程的可怕不可中断(TASK_UNINTERRUPTIBLE)状态.这是一个状态,在该状态开始等待,完成之前,该过程不会对信号作出反应.
 不幸的是,这是一种必要的恶魔见here和这里What is an uninterruptable process?.

我的答案是重启系统.
重启会导致任何问题吗?
很难说,它可能不会.处于D状态的进程可能必须执行一些重要更新,如果重新启动它将不会发生.
如果您真的无法重新启动,请尝试查找进程正在等待的磁盘,并通过打开,关闭,读取/写入磁盘来查看磁盘是否正常工作