daemon函式的原理及使用詳解

2021-06-06 07:20:39 字數 811 閱讀 8848

在linux系統下建立守護程序的原理及步驟在文章(鏈結如下)中介紹過。

其實,linux提供了daemon函式用於建立守護程序,實現原理與上文中介紹的是一樣的。

#include

int daemon(int nochdir, int noclose);

1. daemon()函式主要用於希望脫離控制台,以守護程序形式在後台執行的程式。

2. 當nochdir為0時,daemon將更改進城的根目錄為root(「/」)。

3. 當noclose為0是,daemon將進城的stdin, stdout, stderr都重定向到/dev/null。

daemon的實現大致如下:

int daemon( int nochdir,  int noclose )

pid = fork();  //建立子程序.

if (pid  <  0)  //失敗

return -1;

if (pid > 0)

_exit(0); //返回執行的是父程序,那麼父程序退出,讓子程序變成真正的孤兒程序.

//建立的 daemon子程序執行到這裡了

if ( setsid()  < 0 )   //建立新的會話,並使得子程序成為新會話的領頭程序

return -1;

return 0;  //成功建立daemon子程序}

使用例項:

int main()

如何殺死這樣的程序:

通過ps+grep找到對應的後台程序,使用kill命令將程序殺死;也可建立shell指令碼對程序的啟動、關閉、重啟進行自動管理,參考下文:

daemon函式的原理及使用詳解

在linux系統下建立守護程序的原理及步驟在文章 鏈結如下 中介紹過。其實,linux提供了daemon函式用於建立守護程序,實現原理與上文中介紹的是一樣的。include int daemon int nochdir,int noclose 1 daemon 函式主要用於希望脫離控制台,以守護程序...

Python Mock模組原理及使用方法詳解

一 mock是什麼?英譯中含義有 虛假的 不誠實的 模仿的 模擬的 這個意思 這個庫的主要功能就是模擬一些事務 官方解釋 mock是python中乙個用於支援單元測試的庫,它的主要功能是使用mock物件替代掉指定的python物件,以達到模擬物件的行為 二 為什麼要用mock?舉例 假設你開發乙個專...

Daemon函式的用法

daemon 函式的用法 說明 讓乙個程式後台執行。原型 c sharp view plain copy include intdaemon intnochdir,intnoclose 引數 當 nochdir 為零時,當前目錄變為根目錄,否則不變 當 noclose 為零時,標準輸入 標準輸出和錯...