Я знаю это, если процесс входит D
заявите затем, что это означает, что это находится в непрерываемом состоянии. Процесс не может быть уничтожен никаким сигналом. Это только выйдет из того состояния на перезагрузке или если ожидание ввода-вывода закончено.
Я имею, многие обрабатывают в D
состояние, которое показывает, что существует что-то не так в моей машине. Также даже после перезагрузки они возвращаются к D
состояние. Я искал онлайн, и найдите это wchan
раздел в PS произвел, сказывается на том, на какой вещи в ядре мой процесс ожидает.
Когда я использую эту команду ps axl| grep D
я добираюсь -
в wchan столбце и нет никакого объяснения онлайн, что делает это означает.
Это - мой демонстрационный вывод для вышеупомянутой команды.
0 0 69970 1 20 0 25064 1088 - D ? 0:00 ls -l
Я не могу понять что -
предназначенный в вышеупомянутом выводе.
Справочная страница ps содержит эту информацию, «-» означает, что процесс запущен. WCHAN имя функции ядра, в которой процесс находится в спящем режиме, «-», если процесс запущен, или «*», если процесс многопоточный и ps не отображает потоки.
в новом ядре Linux вы видите, в какой функции ядра застрял ваш процесс
cat /proc/<pid_numer>/stack
Есть несколько возможных причин того, что wchan сообщается как -
от ps
:
state
)cat /proc/*/wchan
— все 0 указывают на неработающую поддержку wchan (например, в настоящее время в Fedora 31 и 32)PTRACE_MODE_READ_FSCREDS
) – маловероятноОбратите внимание, что недавняя версия ps
считывала информацию wchan из /proc/$pid/wchan
, к которой вы можете получить доступ напрямую с помощью cat
также для упрощения тестирования. Этот файл читается как 0
, если поиск информации не удался, что ps
переводится как -
.
В системах, где wchan
не работает, замена должна выглядеть (требуется root):
cat /proc/$pid/stack
Или, альтернативно, проконсультироваться (не требует привилегий root):
cat /proc/$pid/syscall