Linux 守護程序

2021-10-04 12:25:14 字數 1047 閱讀 5554

#include #include //malloc

#include #include #include #include //建立守護程序

//建立成功則返回1,否則返回-1

int ngx_daemon()

//只有子程序流程才能走到這裡

if (setsid() == -1) //脫離終端,終端關閉,將跟此子程序無關

umask(0); //設定為0,不要讓它來限制檔案許可權,以免引起混亂

//守護程序是在後台執行,它不應該從鍵盤上接收任何東西,也不應該把輸出結果列印到螢幕或者終端上來

//所以,一般按照江湖規矩,我們要把守護程序的 標準輸入,標準輸出,重定向到 空裝置(黑洞);

//從而確保守護程序不從鍵盤接收任何東西,也不把輸出結果列印到螢幕;

fd = open("/dev/null", o_rdwr); //開啟黑洞裝置,以讀寫方式開啟

if (fd == -1)

//複製檔案描述符 ,像個指標賦值,把第乙個引數指向的內容賦給了第二個引數;

if (dup2(fd, stdin_fileno) == -1) //先關閉stdin_fileno,類似於指標指向null,讓/dev/null成為標準輸入;

if (dup2(fd, stdout_fileno) == -1) //類似於指標指向null,讓/dev/null成為標準輸出;

if (fd > stderr_fileno) //fd應該是3,這個應該成立

}return 1;

}int main(int argc, char *const *ar**)

else

}return 0;

}

使用系統api建立後台守護程序

#include #include int main(void)

return 0;

}//g++ -g -o mydaemon.exe daemonapi.cpp

//ps -ef | grep mydaemon.exe

Linux守護程序

linux下守護程序一般分為5步,但是實際上只有前兩步是關鍵。第一步 建立子程序,關閉父程序。使用fork 建立,父程序exit 退出。關鍵第二步 建立新的會話id,setsid 作用是使子程序擺脫原有的會話 程序組 終端的控制,其實,linux下每個程序都是由一號程序建立而來的,每個程序都是1號程...

Linux 守護程序

守護程序daemon,是生存期較長的一種程序,名字一般以字母d結尾。它們常常在系統自舉時啟動,僅在系統關閉時才終止。因為它們沒有控制終端,所以說它們是在後台執行的。linux系統有很多守護程序,它們執行日常事務活動。自舉只有兩個功能 加電自檢和磁碟引導。加電自檢 當我們按下計算機電源開關時,頭幾秒鐘...

Linux守護程序

程式設計級別 一 守護程序的概念 守護程序是一種生存期比較長的程序,常常在系統自舉時啟動,在系統關閉時退出。因為他們沒有控制終端,因此是在後台執行的。二 守護程序的程式設計規則 1清除檔案模式建立遮蔽字 2成為乙個新的會話首程序 3略hup訊號。然後再次fork 4改變當前工作路徑 5關閉所有的檔案...