Удалить постоянный процесс зомби из командной строки - PullRequest
4 голосов
/ 28 февраля 2012

Я регулярно запускаю adb и иногда он перестает работать.

$ ps aux

user1  4175  0.0  0.0      0     0 ?        Zl   Feb27   0:03 [adb] <defunct>

Этот процесс зомби перестает работать adb, и я не могу заставить работать adb снова без перезагрузки компьютера.

Я попытался отправить

kill 4175
kill -9 4175 
kill-17 4175 

но ничто не «пожинает» процесс зомби.

Как мне заставить ADB работать снова без перезагрузки компьютера?

Также я использую:

Linux user1 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:12:07 UTC 2012 x86_64 GNU/Linux

Ответы [ 2 ]

0 голосов
/ 18 ноября 2013

Я тоже часто это вижу. Это вызвано тем, что поток застревает в режиме ядра при выходе из программы. Вы можете увидеть это с помощью ps mx:

# ps mx
  17188 ?        -      1:49 [adb] <defunct>
      - -        Zl     0:01 -
      - -        Dl     1:46 -

Состояние «D» второго потока указывает, что поток находится в режиме ядра и не может быть уничтожен. Подробнее об этом можно прочитать здесь:

http://ntucsie2007.wikidot.com/linux-defunct-zombie-processes

К сожалению, я думаю, что для корректного выхода из adb придется изменить.

0 голосов
/ 28 февраля 2012

Единственная команда kill, которая запускает процесс зомби, - это команда, которая убивает своего родителя, поскольку затем она переходит в init, который затем переходит к ее пожинанию.

Не совсем возможно, когда это поток ядра ...

...