Подтвердить что ты не робот

Процесс постоянно застревает в D состоянии

У меня проблема с некоторыми процессами, застрявшими в состоянии D на Ubuntu 10.04.3 LTS.

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

Это результат для элементов состояния D из ps -aux

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

Есть ли способ убить их? Имеет ли процессы в этом состоянии при перезагрузке какие-либо проблемы?

4b9b3361

Ответ 1

Это страшное неудержимое (TASK_UNINTERRUPTIBLE) состояние процесса. Это состояние, в котором процесс не реагирует на сигналы до тех пор, пока он не начнет ждать, выполняется.  К сожалению, это необходимое зло. См. здесь и здесь Что такое непрерывный процесс?.

Мой ответ - перезагрузить систему.
У вас возникли проблемы с перезагрузкой?
Трудно сказать, возможно, это не так. Процесс, который находится в состоянии D, возможно, придется сделать некоторые важные обновления, которые не будут выполняться при перезагрузке.
Если вы действительно не можете позволить себе перезагрузиться, попробуйте найти диск, на котором ожидает процесс, и посмотрите, работает ли диск нормально, открыв, закрыв, прочитав/записав в него

Ответ 2

Нет - вы не можете убить их, период. kill -9 тоже не работает. И это не ошибка ядра, это по дизайну. Все сигналы блокируются до тех пор, пока эти процессы не покинут состояние D. Они либо покидают состояние D, либо система перезагружается. Нет, перезагрузка не имеет проблем с этими ребятами.

Обычными виновниками такого рода проблем являются съемные мультимедийные устройства, такие как cdrom. Устройство может быть неисправным, или кто-то нашел способ сделать что-то глупое.