守護進程的建立過程

編寫守護進程須要5步繼承


1 建立子進程,父進程結束(讓這個進程由init進程託管)
pid = fork();
if(pid > 0) //父進程
{
  exit(0);
}
2 在子進程中建立新會話(此進程就能夠脫離原來進程,脫離控制終端,脫離原來進程組)
setsid(); //最主要是脫離控制終端進程

3 改變當前目錄(每個進程都有一個當前目錄), 不是必須的
chdir("/tmp");get

4 從新設置文件權限掩碼(不是必須的)
umask(0);it

5 關閉打開的文件描述符(若是父進程打開了一些文件,子進程會繼承過來,那麼子進程把這些文件關閉)
int num;
num = getdtablesize(); //得到當前打開的文件描述符表
for(i = 0; i < num; i++)
{
  close(i);
}table

相關文章
相關標籤/搜索