歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> C語言實現linux的守護進程

C語言實現linux的守護進程

日期:2017/3/2 16:46:14   编辑:Linux服務器

利用網上下載的這段代碼,成功實現了守護進程,原來守護進程是很簡單的事情。

在main函數中執行

init_daemon();//初始化為Daemon

就可以把進程變成守護進程

QUOTE:

#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;
}

Copyright © Linux教程網 All Rights Reserved