繁体   English   中英

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

[英]Remove persistent zombie process from the command line

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

我也经常看到这种情况。 这是由于程序退出时线程卡在内核模式下引起的。 您可以使用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更改为干净退出。

唯一能够kill僵尸进程的kill命令是杀死其父进程的命令,因为它随后将返回到init并随后继续对其进行收获。

不过,当它是内核线程时,实际上是不可能的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM