
行程管理
|
185
如下的調用:
pid_t pgid = getpgrp ();
等效於:
pid_t pgid = getpgid (0);
它們都會傳回「進行叫用之行程的」行程群組識別碼。函式
getpgid()
不會失敗。
監控程式
監控程式
(
daemon
)就是一個在背景中運行的行程,它不會連接到任何控制終端機。
監控程式一般會啟動於開機時期,並且會以
root
或其他特殊用戶(例如
apache
或
postfix
)的身份運行,而且所處理的是系統層級的任務。按慣例,監控程式的名稱通常
會以字母 d 結尾(例如
crond
及
sshd
),但是這並非必要或甚至不具普遍性。
daemon 這個名稱源自於 Maxwell
’
s demon(馬克斯威爾的小妖),這是
物理學家 James Maxwell 於 1867 年所提出的一個想法。demon(精靈)
還是希臘神話中超自然的存在,祂存在於人和神之間並且具有天賦的力量
和神的知識。不同於猶太教和基督教所教導的 demon(惡魔),希臘的
demon(精靈)並不必然是邪惡的。的確,在希臘神話中,demon 往往
會幫奧林匹斯山眾神完成祂們不願意做的事—這與 Unix 的 daemon(監
控程式)為前景用戶完成其想要避免之工作非常像。
監控程式通常需要符合兩項需求:它必須是 init 的一個子行程,以及它不得連接到一個
終端機。
總之,一個程式完成以下步驟就可以變成一個 daemon:
1. 叫用
fork()
。這會建立一個新的行程,這個新行程將變成 daemon。
2. 在父行程中呼叫 ...