精靈程序:也稱守護程序,是執行在後台的一種特殊程序。它獨⽴立於控制終端並且周期性地執行某種任務或等待處理某些發生的事件。它不屬於任何乙個會話,它自成會話,自成程序組。一般而言,後台程序永遠不能退出。所有的精靈程序的父程序都是1,即所有的精靈程序都是孤兒程序。精靈程序一般以d結尾。
用ps axj 來檢視精靈程序,如下:
linux大多數伺服器都是用精靈程序實現的,比如 internet伺服器inetd,web伺服器httpd等。
精靈程序可以完成許多程序任務:比如 作業規劃程序crond等。
具體實現如下:
#include
#include
#include
#include
#include
void mydaemon()
//設定新的會話
setsid();
//將當前工作目錄更改為根⽬目錄
chdir("/");
//關閉不在需要的檔案描述符
close(0);
close(1);
close(2);
//忽略sigchld訊號
程序及其實現
一 程序的定義 1 程序是可併發執行的程式在某個資料集合上的一次計算活動,也是作業系統進行資源分配和保護的基本單位 2 可以用來共享資源又能描述程式併發 為什麼要引入程序概念 1 刻畫程式的併發性 程式是併發執行的,這是由於資源共享和競爭問題,程式自身只是計算任務的指令和資料的描述,是靜態的,程序是...
守護程序及其特性
一 守護程序及其特性 守護程序最重要的特性是後台執行 其次,守護程序必須與其執行前的環境隔離開來。這些環境包括未關閉的檔案描述符,控制終端,會話和程序組,工作目錄以及檔案建立掩模等。這些環境通常是守護程序從執行它的父程序 特別是shell 中繼承下來的 最後,守護程序的啟動方式有其特殊之處 它可以在...
linux下的守護(精靈)程序daemon
include include include include include include include include intmain else if pid 0 2.在子程序中建立新會話 setsid 3.改變當前目錄為根目錄 chdir 4.重設檔案許可權掩碼 umask 0 5.關閉檔...