Раздел Wchan в PS произвел не показ чего-либо

Я знаю это, если процесс входит D заявите затем, что это означает, что это находится в непрерываемом состоянии. Процесс не может быть уничтожен никаким сигналом. Это только выйдет из того состояния на перезагрузке или если ожидание ввода-вывода закончено.

Я имею, многие обрабатывают в D состояние, которое показывает, что существует что-то не так в моей машине. Также даже после перезагрузки они возвращаются к D состояние. Я искал онлайн, и найдите это wchan раздел в PS произвел, сказывается на том, на какой вещи в ядре мой процесс ожидает.

Когда я использую эту команду ps axl| grep D я добираюсь - в wchan столбце и нет никакого объяснения онлайн, что делает это означает.

Это - мой демонстрационный вывод для вышеупомянутой команды.

0     0  69970      1  20   0  25064  1088 -      D    ?          0:00 ls -l

Я не могу понять что - предназначенный в вышеупомянутом выводе.

2
задан 14 June 2015 в 10:51
3 ответа

Справочная страница ps содержит эту информацию, «-» означает, что процесс запущен. WCHAN имя функции ядра, в которой процесс находится в спящем режиме, «-», если процесс запущен, или «*», если процесс многопоточный и ps не отображает потоки.

1
ответ дан 3 December 2019 в 10:43

в новом ядре Linux вы видите, в какой функции ядра застрял ваш процесс

cat /proc/<pid_numer>/stack
2
ответ дан 3 December 2019 в 10:43

Есть несколько возможных причин того, что wchan сообщается как - от ps:

  • процесс просто не заблокирован в ядре, т.е. он запущен (ср.столбец ps state)
  • процедура прохода по стеку не удалась из-за какого-то краевого случая или состояния гонки. Это может даже безоговорочно потерпеть неудачу, например. на ядрах, которые требуют правильных настроек указателя кадра, но были скомпилированы без них — проверьте это с помощью cat /proc/*/wchan — все 0 указывают на неработающую поддержку wchan (например, в настоящее время в Fedora 31 и 32)
  • у вас нет необходимых разрешений режима доступа к ptrace (а именно PTRACE_MODE_READ_FSCREDS) – маловероятно
  • поиск символов не удался в ядре - маловероятно

Обратите внимание, что недавняя версия ps считывала информацию wchan из /proc/$pid/wchan, к которой вы можете получить доступ напрямую с помощью cat также для упрощения тестирования. Этот файл читается как 0, если поиск информации не удался, что ps переводится как -.

В системах, где wchan не работает, замена должна выглядеть (требуется root):

cat /proc/$pid/stack

Или, альтернативно, проконсультироваться (не требует привилегий root):

cat /proc/$pid/syscall
2
ответ дан 7 November 2020 в 10:22

Теги

Похожие вопросы