热门问题
时间线
聊天
视角

OpenRC

在類UNIX作業系統使用的以依賴關係為基礎的init系統 来自维基百科,自由的百科全书

Remove ads

類Unix系統上,OpenRC是一個基於依賴的init系統。因為多數發行版切換成了systemd,它被用作一種替代的init系統[3][4][5]。它是Roy Marples創建的,他是也活躍於 Gentoo計劃的NetBSD開發者[6][7]

快速預覽 原作者, 開發者 ...

OpenRC是GentooAlpine LinuxHyperbola GNU/Linux-libreParabola GNU/Linux-libreArtix Linux英語Artix LinuxMaemo LesteTrueOS[8]和其他類unix系統的預設init系統,而其他一些發行版比如Devuan把它作為一個選項提供[9]。這意味著這些支持它的系統/發行版的軟體包和守護進程(daemon),帶有或使用可獲得的腳本。

Remove ads

設計

OpenRC構成自一些模塊組件,主要的組件是init(可選)、核心依賴管理系統和守護進程監管器英語Process supervision(supervisor)(可選)。它用C語言和遵循POSIX的shell寫成,這使得它在BSD和Linux系統上可以使用。

OpenRC的核心部份處理依賴管理和init腳本分析。OpenRC通過掃描運行級別,建造依賴圖,接著啟動需要的服務腳本來工作。一旦腳本都已經啟動它就退出。預設的,OpenRC使用一個修改版本的start-stop-daemon用於守護進程管理[10]

init腳本享有與SysVinit使用的腳本的相似性,但是提供了一些特徵來簡化它們的創建。腳本都假定有start()stop()status(),而系統使用已經聲明的變量來創建這些預設函數[11]。使用依賴函數來聲明對其他服務的依賴性,這在SysVinit中是用LSB頭完成的。配置和機制是分離的,分別採用在conf.d目錄中的配置文件和在init.d目錄中的init文件。

Openrc-init首先出現在版本0.25中,用作對/sbin/init的可選的替代。還支持一些其他init包括SysVinitBusyBox[12]

監管守護進程(supervise-daemon)首次出現在版本0.21中,給予openrc監管能力。它可以在init腳本中啟用,用作啟動和監控一個守護進程的監管守護進程。支持一些其他其他守護進程監管器包括runit[13]和s6[14]

Remove ads

特徵

  • 在Linux、TrueOS、FreeBSD和NetBSD之間可移植。
  • 並行的服務啟動(預設關閉)。
  • 基於依賴的引導。
  • 通過cgroups的進程隔離[15]
  • 每服務資源限制(ulimit)。
  • 代碼和配置分離(init.d / conf.d)。
  • 可擴展的啟動腳本。
  • 有狀態的init腳本(它已經啟動了嗎?)。
  • 啟動多個組件的複雜init腳本(Samba(smbd和nmbd),NFS(nfsd、portmap等))。
  • 自動的依賴計算和服務定序。
  • 模塊化架構和可選組件的分離(Cronsyslog)。
  • 有表達力和靈活性的網絡處理(包括VPN,網橋等)。
  • 冗長調試模式。

引用

外部連結

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads