在Debian(以及大多数Linux发行版)中,僵尸进程不会自动消失,除非其父进程显式地调用 wait() 或 waitpid() 系统调用来回收子进程的资源。以下是有关僵尸进程的详细信息:
SIGCHLD 信号。wait() 或 waitpid() 来读取子进程的退出状态并回收资源,子进程就会成为僵尸进程。wait() 或 waitpid() 来等待子进程的终止状态,并在处理完僵尸进程后释放相关资源。init 进程(进程号为1)接管,init 进程会周期性地调用 wait() 来清理这些孤儿进程产生的僵尸进程。因此,虽然在某些情况下,僵尸进程可能会因为父进程的结束而被自动清理,但良好的编程实践,父进程应该总是调用 wait() 或 waitpid() 来处理子进程的终止状态,以避免僵尸进程的积累。