守護程序的最簡單實現方法

2021-06-05 01:08:53 字數 645 閱讀 8996

#include #include #include void createdaemon(void)

else if (pid != 0)
exit(0);                        //父程序退出

setsid(); //建立新的會話組

if (chdir("/") < 0) //改變程序工作目錄

close(0);

if(open("/dev/null", o_rdwr) < 0) //0號檔案描述符已經關閉,那麼開啟的檔案的檔案描述符一定是0

dup2(0, 1);                          //複製將0號檔案描述符複製給標準輸出和標準錯誤

dup2(0, 2); //後邊可以加守護程序的個性**

}

int main(void)

守護程序簡單實現

int daemon int nochdir,int noclose 引數 當 nochdir為零時,當前目錄變為根目錄,否則不變 當 noclose為零時,標準輸入 標準輸出和錯誤輸出重導向為 dev null,也就是不輸出任何信 息,否則照樣輸出。返回值 deamon 呼叫了fork 如果for...

守護程序的實現

6個步驟 步驟1 建立子程序,殺死父程序,目的是為了步驟2中呼叫setsid可以成功。步驟2 建立新會話,並自任組長。目的是脫離控制終端 會話組長呼叫 setsid 會失敗,步驟1建立的子程序必然不是會話組長,這就保證了 setsid 可以成功。步驟3 修改工作目錄為根目錄。當程序沒有結束時,工作目...

實現守護程序

目錄守護程序 也稱為精靈程序,守護程序是乙個在後台執行並且不受任何終端控制的程序。unix作業系統有很多典型的守護程序 其數目根據需要或20 50不等 它們在後台執行,執行不同的管理任務。使用者使守護程序獨立於所有終端是因為,在守護程序從乙個終端啟動的情況下,這同乙個終端可能被其他的使用者使用。ps...