共有回帖数  0  个 
	 
	
	
	
     
          
          
               
				
			 
				
					 
 
            
				   - 
						
						
							 
									利用网上下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。
 
 在main函数中执行
 
 init_daemon();//初始化为Daemon
 
 就可以把进程变成守护进程
 
 [code=c]
 #include
 #include
 #include
 #include
 #include
 
 void init_daemon(void)
 {
 int pid;
 int i;
 
 if(pid=fork())
 exit(0);//是父进程,结束父进程
 else if(pid 0)
 exit(1);//fork失败,退出
 //是第一子进程,后台继续执行
 
 setsid();//第一子进程成为新的会话组长和进程组长
 //并与控制终端分离
 if(pid=fork())
 exit(0);//是第一子进程,结束第一子进程
 else if(pid 0)
 exit(1);//fork失败,退出
 //是第二子进程,继续
 //第二子进程不再是会话组长
 
 for(i=0;i NOFILE;++i)//关闭打开的文件描述符
 close(i);
 chdir("/tmp");//改变工作目录到/tmp
 umask(0);//重设文件创建掩模
 return;
 }
 [/code]
 楼主 2016-10-12 12:32 回复 
 
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知