GNU Shepherd 0.8 初始化系統發布

可用的 服務經理 GNU 牧羊人 0.8 (前DMD),它是由 GNU Guix System 發行版的開發人員開發的,作為 SysV-init 初始化系統的依賴感知替代方案。 Shepherd 控制守護程式和實用程式是用 Guile 語言(Scheme 語言的實作之一)編寫的,它也用於定義啟動服務的設定和參數。 Shepherd 已經在 GuixSD GNU/Linux 發行版中使用,並且也旨在在 GNU/Hurd 中使用,但可以在任何支援 Guile 語言的 POSIX 相容作業系統上運行。

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

添加評論