我知道,如果一个进程进入D状态,那么这意味着它处于不可中断的状态。 这个过程不能被任何信号所杀死。 只有在重新启动或I / O等待结束时才会出现该状态。
我在D状态下有很多进程,说明我的机器有问题。 即使重新启动后,他们也回到D状态。 我在网上search,发现ps输出wchan部分告诉内核我的进程等待什么东西。
当我使用这个命令ps axl| grep D ps axl| grep D我越来越-在专栏,并没有在网上解释这是什么意思。
这是我上面的命令的示例输出。
0 0 69970 1 20 0 25064 1088 - D ? 0:00 ls -l
我无法理解上面输出中的含义。
在较新的linux内核中,您会看到哪个内核函数卡住了进程
cat /proc/<pid_numer>/stack
ps的man page有这个信息,“ – ”表示进程正在运行。 进程正在hibernate的内核函数的WCHAN名称,进程正在运行时为“ – ”,如果进程为multithreading,则为“*”,而ps不显示线程。