Linux僵尸进程
一、定义:什么是孤儿进程和僵尸进程
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
示例:
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
僵尸进程将会导致资源浪费,而孤儿则不会。
子进程持续10秒钟的僵尸状态(EXIT_ZOMBIE)
------------------------------------------------------
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
pid_t pid;
pid = fork();
if(pid < 0)
printf("error occurred!\n");
else if(pid == 0) {
printf("Hi father! I'm a ZOMBIE\n");
exit(0); //(1)
}
else {
sleep(10);
wait(NULL); //(2)
}
}
(1) 向父进程发送SIGCHILD信号
(2) 父进程处理SIGCHILD信号
执行exit()时根据其父进程的状态决定自己的状态:
如果父进程已经退出(没有wait),则该子进程将会成为孤儿进程过继给init进程
如果其父进程还没有退出,也没有wait(),那么该进程将向父进程发送SIGCHILD信号,进入僵尸状态等待父进程为其收尸。如果父进程一直没有执行wait(),那么该子进程将会持续处于僵尸状态。
子进程将成为孤儿进程
------------------------------------------------------
#include <sys/types.h>
#includ
相关文档:
怎样创建真正很小的Linux下的ELF可执行文件
转载: ELF文件格式研究
日期: Friday, July 25 @ 14:46:16 CST
主题: 软件开发
发信人: someone (++), 信区: Linux
标 题: 怎样创建真正很小的Linux下的ELF可执行文件
发信站: ......
tables=fuckme query=where fucktime > trunc(sysdate)-1 direct=y
on linux query=\"where fucktime \> trunc\(sysdate\)-1\" 要转义符 一前一后 中间都要 符号位前
direct=N 可惜不支持直接路径导出 ......