程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言編寫linux下的守護進程

C語言編寫linux下的守護進程

編輯:關於C語言

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

  在main函數中執行

  init_daemon();//初始化為Daemon

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved