Shepherd 既可以用作主初始化系統(PID 為 1 的 init),也可以以單獨的形式管理各個用戶的後台進程(例如,運行 tor、privoxy、mcron 等),並以以下權限執行:這些用戶。 Shepherd 透過考慮服務之間的關係,動態識別和啟動所選服務所依賴的服務來完成啟動和停止服務的工作。 Shepherd 還支援偵測服務之間的衝突並防止它們同時運作。
主要創新:
- make-kill-destructor實作殺死一組程序;
- 新增參數default-pid-file-timeout,決定建立PID檔案的等待時間;
- 如果逾時內沒有出現PID文件,則終止整個進程組(決定
問題 留下沒有 PID 檔案的工作進程); - 「make-forkexec-constructor」新增「#:file-creation-mask」參數,實作日誌檔案建立並停止支援舊的呼叫約定;
- 解決了在沒有prctl的系統上編譯的問題,例如GNU/Hurd;
- 修復了導致每秒發送 SIGALRM 的問題。
來源: opennet.ru