在Linux系統上運行服務(或daemons)的典型方法是使用initscripts,它是殼腳本的優化版,能夠開始和停止服務。雖然這種方法對大部分來說都是適用的,但是高效的有效性卻正在丟失。如果服務自己停止了,它就會無效了。 另外一種運行服務的方法是使用D. J. Bernstein的Daemontools軟件包。它運行一個叫做監督的Daemon,它能夠監督它能啟動的所有服務。如果一個服務停止了,監督將會在五秒鐘之內重新啟動它,所以它的服務總是有效的。 使用daemontools是相當簡單的。它使用/service目錄等級跟一個根據下層服務命名的子目錄。子目錄包括一個叫做運行的文件,跟initscript非常地相似。 運行的腳本啟動服務。如果服務曾經有過停止,監督將會重新執行腳本來啟動它。 比如,如果你想要在監督下運行OpenSSH ,創建目錄 /supervise/sshd. 運行的腳本的內容應該看到正如如下的initscript: #!/bin/sh exec /usr/sbin/sshd -D >/dev/null 2>&1 這樣就啟動了sshd,而且阻止它在後台運行。監督需要所有它開始在前台運行的服務。它根本不影響用戶的;而服務只知道它在前台運行的服務。但是這能夠使得監督更好地控制服務。 如果你想要停止服務,告訴監督你需要正如如下所標的服務,引導它發送控制的daemon術語信號。例子: # svc -dx /service/sshd 這就停止了服務,並且標記了它,當監督不能在幾秒鐘之內的停止,重新啟動它。 請查看daemontools網站,或許更多有關daemontool的信息和下載該軟件。