android - 如何清理僵尸进程

标签 android linux kill

做如下:

root@m0032dvr:/ # ps | grep native
root      4064  3956  80160  8012  futex_wait b6d795ec S nativecamera
root@m0032dvr:/ # kill 4064
root@m0032dvr:/ # ps | grep native                                             
root      4064  3956  0      0        do_exit 00000000 Z nativecamera

再次杀戮:

root@m0032dvr:/ # kill 4064                                                    
root@m0032dvr:/ # ps | grep native                                             
root      4064  3956  0      0        do_exit 00000000 Z nativecamera

杀死ppid:

root@m0032dvr:/ # kill 3956                                                    
root@m0032dvr:/ # ps | grep native                                             
root      4064  3956  0      0        do_exit 00000000 Z nativecamera

所以,kill可以释放nativecamera的资源,但是会变成zombie,不能完全clean。

kill -9 [pid],没有效果。

root@m0032dvr:/ # kill -9 2711                                                 
root@m0032dvr:/ # ps | grep -i native                                          
root      2711  2261  0      0        do_exit 00000000 Z nativecamera

最佳答案

尝试阅读 manual for kill .您可以发送不同的信号,默认情况下 kill 将发送 SIGTERM 信号,该信号指示进程执行其关闭例程并退出,但僵尸进程将无法执行此操作。您应该使用 kill -9 [pid] 将 SIGKILL 发送给僵尸,这样操作系统就不会等待进程退出,而是突然终止它,而不会给进程留下任何执行任何操作的机会。

关于android - 如何清理僵尸进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51058886/

相关文章:

java - 如何在 Android 软键盘上获取 '.' 点字符 KeyPressEvent

android - 使用本地移动库调用 Dart

linux - 如何在vim编辑器中制作参数化命令图

linux - shell脚本杀死监听端口3000的进程?

vbscript - 如何使用 VBScript 终止由特定用户启动的进程

c - 未调用信号函数

android - 有条件地重启 Activity onConfigurationChanged

android - 构建GDB android

html - Raspberry 在后台打开网页

c++ - `libusb_attach_kernel_driver` 不工作