守护进程是一种生命周期较长的进程,它常在系统自举时开始,然后在系统关闭是结束。
#include"unpipc.h"int main(){ int i,fd0,fd1,fd2; pid_t pid; struct rlimit rl; struct sigaction sa; umask(0); if(getrlimit(RLIMIT_NOFILE,&rl)<0){ sys_err("getrlimit error"); } if((pid=fork())<0){ sys_err("fork error"); }else if(pid!=0){ exit(0); } setsid(); sa.sa_handler=SIG_IGN; sigemptyset(&sa.sa_mask); if(sigaction(SIGHUP,&sa,NULL)<0){ sys_err("sigaction error"); } if((pid=fork())<0){ sys_err("fork error"); }else if(pid!=0){ exit(0); } if(chdir("/")<0){ sys_err("chdir error"); } if(rl.rlim_max==RLIM_INFINITY){ rl.rlim_max=1024; } for(i=0;i<rl.rlim_max;i++){ close(i); } fd0=open("/dev/null",O_RDWR); fd1=dup(fd0); fd2=dup(fd1); if(fd0!=0||fd1!=1||fd2!=2){ sys_err("dup error"); } }
来自为知笔记(Wiz)
转载于:https://www.cnblogs.com/yml435/p/4655452.html
相关资源:数据结构—成绩单生成器