我定期运行adb,有时它会停止工作。
$ ps aux
user1 4175 0.0 0.0 0 0 ? Zl Feb27 0:03 [adb] <defunct>
此zombie进程会停止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
答案 0 :(得分:0)
我也常常看到这一点。它是由程序退出时线程停留在内核模式引起的。你可以用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必须改为彻底退出。
答案 1 :(得分:-1)
获取僵尸进程的唯一kill
命令是杀死其父进程的命令,因为它将重新显示为init
,然后继续收获它。
虽然它是内核线程但不是真的可能......