ps --forest ASCII art process tree 2 怎样来清除僵尸进程: 1.改写父进程,在子进程死后要为它收尸.具体做法是接管SIGCHLD信号.子进程死后,会发送SIGCHLD信号给父进程,父进程收到此信号后,执行waitpid()函数为子进程收尸.这是基于这样的原理:就算父进程没有调用wait,内核也会向它发送SIGCHLD消息,尽管对的默认处理是忽略,如果想响应这个消息,可以设置一个处理函数. 2.把父进程杀掉.父进程死后,僵
man wait: NAME wait, waitpid, waitid - wait for process to change state SYNOPSIS #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status); pid_t waitpid(pid_t pid, int *status, int options); int waitid(idtype_t idtype, id_t id, sig
进程状态 进程状态反映进程执行过程的变化.这些状态随着进程的执行和外界条件的变化而转换.为了弄明正正在运行的进程是什么意思,我们需要知道进程的不同状态.一个进程可以有多个状态(在Linux内核中,进程有时候也叫做任务).下面的状态在 fs/proc/array.c 文件中定义: /* * The task state array is a strange "bitmap" of * reasons to sleep. Thus "running" is zero,