守護程序Daemon

2021-09-24 03:24:42 字數 833 閱讀 3770

是linux的後台服務程序。它是乙個生存週期較長的程序,沒有控制終端,輸出無處顯示。使用者層守護程序的父程序是init程序。

守護程序建立步驟:

1、建立子程序,父程序退出,子程序被init自動收養;fork    exit

2、呼叫setsid建立新會話,成為新會話的首程序,成為新程序組的組長程序,擺脫父程序繼承過來的會話、程序組等;setsid

3、改變當前目錄為根目錄,保證工作的檔案目錄不被刪除;chdir(「/」)

4、重設檔案許可權掩碼,給子程序更大的許可權;umask(0)

5、關閉不用的檔案描述符,因為會消耗資源;close

乙個守護程序的例項:每隔10s寫入乙個「tick」

#include

#include

#include

#include

#include

#define maxfile 65535

int main()

else if(pid > 0){

exit(0);   這邊父程序退出   只留下子程序

setsid();

if(chdir("/") < 0){

perror("chdir failed");

exit(1);

umask(0);

for(i = 0; i < maxfile; i++){

close(i);

while(1){

perror("open log failed");

exit(1);

write(fd, buf, len+1);

close(fd);

sleep(10);

daemon守護程序

daemon守護程序 守護程序是乙個後台程序,不能夠控制終端,所以任何輸出,無論是向標準出錯裝置stderr還是向標準輸出裝置stdout的輸出都需做特別處理。守護程序一般在系統啟動時啟動,它的父程序是init程序。建立守護程序 1在父程序執行fork然後讓父程序退出。2在子程序中使用setsid呼...

守護程序 daemon

守護程序常常在系統引導裝入時啟動,在系統關閉時終止。一般說daemon程式在後台執行,是因為它沒有控制終端,無法和前台的使用者互動。daemon程式一般都作為服務程式使用,等待客戶端程式與它通訊。我們也把執行的daemon程式稱作守護程序。乙個守護程序的父程序是init程序,因為它真正的父程序在fo...

守護程序(Daemon)

守護程序 daemon 一般是為了保護我們的程式 服務的正常執行,當程式被關閉 異常退出等時再次啟動程式 恢復服務。例如 http 服務的守護程序叫 httpd,mysql 服務的守護程序叫 mysqld。或者有時候我們需要讓我們的程式 服務能不中斷地執行,在關閉終端後也能在後台默默執行,除了可以這...