守護(daemon)程序即在後台執行的程序,網上有很多介紹守護程序的文章,這裡不再贅述,直接上**。
static void _daemon_prep(int stderr_log)
, just in case.
*/open("/dev/null", o_rdwr);
dup(0);
dup(0);
}static int _daemonize()
exit(0);
} else
}
在你的 main 函式中呼叫 _daemonize 方法即可使你的程序變成守護程序。如以下示例:
int main()
exit(0);
}
以上"hello, world"程式會在後台執行,因在_daemon_prep函式中將標準輸入輸出重定位到了/dev/null,故你在終端看不到任何輸出。如你想在終端看到輸出,可在呼叫_daemon_prep時傳入引數1。如你想把標準輸出、錯誤輸出重定位到檔案方便後續檢視,可修改**如下:
/*
* redirect std, just in case.
*/open("/dev/null", o_rdwr); // stdin
cerr << "open error!" << endl;
dup(0); // stdout
dup(0); // stderr
} else
一般不建議這樣儲存程式日誌,可採用這裡介紹的專用日誌工具
記錄日誌資訊。
實現守護程序
目錄守護程序 也稱為精靈程序,守護程序是乙個在後台執行並且不受任何終端控制的程序。unix作業系統有很多典型的守護程序 其數目根據需要或20 50不等 它們在後台執行,執行不同的管理任務。使用者使守護程序獨立於所有終端是因為,在守護程序從乙個終端啟動的情況下,這同乙個終端可能被其他的使用者使用。ps...
Linux守護程序
linux下守護程序一般分為5步,但是實際上只有前兩步是關鍵。第一步 建立子程序,關閉父程序。使用fork 建立,父程序exit 退出。關鍵第二步 建立新的會話id,setsid 作用是使子程序擺脫原有的會話 程序組 終端的控制,其實,linux下每個程序都是由一號程序建立而來的,每個程序都是1號程...
Linux 守護程序
守護程序daemon,是生存期較長的一種程序,名字一般以字母d結尾。它們常常在系統自舉時啟動,僅在系統關閉時才終止。因為它們沒有控制終端,所以說它們是在後台執行的。linux系統有很多守護程序,它們執行日常事務活動。自舉只有兩個功能 加電自檢和磁碟引導。加電自檢 當我們按下計算機電源開關時,頭幾秒鐘...