Я знаю, что если процесс перейдет в D
состояние, то это означает, что он находится в непрерывном состоянии. Процесс не может быть остановлен никаким сигналом. Он выйдет из этого состояния только при перезагрузке или по окончании ожидания ввода-вывода.
У меня много процессов в D
состояние, которое показывает, что в моей машине что-то не так. Также даже после перезагрузки они возвращаются в D
штат. Я поискал в Интернете и нашел, что wchan
секция вывода ps сообщает, что в ядре ожидает мой процесс.
Когда я использую эту команду ps axl| grep D
я получаю -
в столбце wchan, и в Интернете нет объяснения, что это означает.
Это мой пример вывода для приведенной выше команды.
0 0 69970 1 20 0 25064 1088 - D ? 0:00 ls -l
Я не могу понять что -
имелось в виду в приведенном выше выводе.
в новом ядре Linux вы видите, в какой функции ядра застрял ваш процесс
cat /proc/<pid_numer>/stack
На странице руководства по ps есть эта информация, «-» означает, что процесс запущен. WCHAN имя функции ядра, в которой процесс находится в спящем режиме, «-», если процесс запущен, или «*», если процесс многопоточный и ps не отображает потоки.