Debian系统中僵尸进程的产生与处理机制如下:
SIGCHLD
信号,若父进程未调用wait()
或waitpid()
回收资源,子进程会保留进程表项,成为僵尸进程。init
进程(PID=1)正确接管,也可能导致僵尸进程。SIGCHLD
信号,但因代码逻辑错误未调用回收函数,导致子进程滞留。kill -9 父进程PID
终止父进程,僵尸进程会被init
进程收养并自动回收。SIGCHLD
信号,调用waitpid()
回收子进程资源。ps
命令查找僵尸进程(ps aux | grep 'Z'
),或编写脚本定期清理。注意:直接kill
僵尸进程无效,需通过父进程回收或系统自动处理。频繁出现僵尸进程需排查程序逻辑或系统配置问题。