从命令行中删除持久性僵尸进程

时间:2012-02-28 12:02:40

标签: android linux ubuntu process adb

我定期运行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

2 个答案:

答案 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,然后继续收获它。

虽然它是内核线程但不是真的可能......