Linux 孤儿、僵尸、服务进程创建
2017-01-25 19:57
567 查看
#include"func.h" // 头文件 #include<unistd.h> #include<stdlib.h> #include<fcntl.h> #include<limits.h> #include<sys/types.h> #include<sys/stat.h> #include<stdio.h> #include<string.h> #include<sys/select.h> #include<sys/time.h> #include<sys/mman.h> #include<sys/wait.h>
// orphan进程
int main(){ if(!fork()) { printf("I am orphan\n"); while(1); } else{ exit(3); } return 0; }
// zombie 进程 #include"func.h" /*子进程先退出,而父进程并没有回收资源,造成僵尸进程*/ int main(){ if(!fork()) { exit(2); } else{ while(1); } } #include"func.h" /*3、通过fork创建子进程,然后父进程通过wait回收,同时拿到子进程的返回值*/ /*为了避免产生僵尸进程,消耗系统资源,当子进程退出时,要使用 * wait() 及时回收资源*/ /*可以使用 pid_t wait(int *status);来查看子进程退出时的返回值, * 使用宏实现,WIFEXITED(status),正常结束,输出非0,确定是否正常退出, * staturs 传入整型值,非地址 * WEXITSTATUS(status)查看进程退出值*/ int main() { pid_t pid; pid = fork(); if(pid ==0) // 子进程创建 { exit(2); }else{ // 父进程创建 // wait(NULL); // wait()要在sleep()之前调用,否则一样会造成僵尸进程 int status; pid_t cpid; cpid=wait(&status); // 传入整型值,非地址 if(WIFEXITED(status)){// 子进程正常退出 printf("child pid return %d\n",WEXITSTATUS(status)); printf("cpid %d\n",cpid); sleep(10); }else{ // 非正常退出 printf("child crach\n"); } } } /*4、创建deamon并运行*/ #include"func.h" int main(){ pid_t pid,sid; const int MAXFD=3; pid =fork(); if(pid<0){ exit(1); } if(pid>0){ exit(0); } sid=setsid(); // 成为新进程领导,脱离控制终端 if(sid<0){ // return failure exit(1); } chdir("/"); // 设置目录为根目录 for(int i=0;i<MAXFD;i++){ close(i); } while(1); return 0; }
相关文章推荐
- Linux:进程创建与僵尸孤儿进程
- Linux中孤儿进程和僵尸进程的解释
- linux系统编程之进程(三):进程复制fork,孤儿进程,僵尸进程
- 2.Linux复习 ---- 孤儿进程,僵尸进程
- Linux _孤儿进程和僵尸进程 浅见
- Linux孤儿进程与僵尸进程
- (转载)Linux 僵尸进程与孤儿进程
- [Linux] 孤儿进程与僵尸进程[总结]
- linux 孤儿进程和僵尸进程
- Linux中的 僵尸进程 和 孤儿进程
- Linux中的 僵尸进程 和 孤儿进程
- .linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸 文件读写 文件锁、select、poll
- Linux中的 僵尸进程 和 孤儿进程
- linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸
- Linux之僵尸进程和孤儿进程【总结】
- 系统编程之进程的创建.僵尸与孤儿进程
- linux系统编程之进程(三):进程复制fork,孤儿进程,僵尸进程
- Unix/Linux操作系统:孤儿进程与僵尸进程[总结]
- Linux进程理解与实践(二)僵尸&孤儿进程 和文件共享
- Linux进程理解与实践(二)僵尸&孤儿进程 和文件共享