OpenRC
作者 | Roy Marples |
---|---|
開発元 | OpenRC Developers |
初版 | 2007年4月5日 |
最新版 |
0.52.1
/ 2023年11月17日[1] |
リポジトリ | |
プログラミング 言語 | C[2], Shell |
対応OS | Linux, FreeBSD, NetBSD, TrueOS |
サイズ | ~900 KB |
種別 | initデーモン |
ライセンス | 二条項BSDライセンス |
公式サイト |
www |
OpenRCはUnix系オペレーティングシステムにおける、依存関係ベースのinitシステムである。systemdに移行したディストリビューションの、initシステムの代替選択肢[3][4][5]であり、NetBSDとGentoo Linuxで活躍する開発者、Roy Marplesによって開発された[6][7]。
OpenRCはTrueOS[8]、Gentoo Linux、Alpine Linuxや他のUnix系システムにおいてデフォルトのinitシステムであり、Devuan[9]などのシステムではオプションとして提供されている。
設計
[編集]OpenRCのコア部分は、依存関係の管理とinitスクリプトの解析を行う。OpenRCはランレベルをスキャンし、依存関係のグラフを作り、必要なサービスのスクリプトを開始する。スクリプトが開始されたあとは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のオプションの代替物として登場した。SysVinitやBusyboxなどの他のinitもサポートされている[12]。
Supervise-daemonは、バージョン0.21において、OpenRCに監査機能を提供するために登場した。この機能はinitスクリプト中でデーモンの開始とモニタリングのために有効化される。runit[13]やs6[14]など他のデーモン監査もサポートされている。
機能
[編集]- Linux、TrueOS、FreeBSD、NetBSDに移植可能
- 並行したサービスの起動(デフォルトではオフになっている)
- 依存関係ベースの起動
- cgroups経由でのプロセスの分離[15]
- サービスごとのリソースの制限 (ulimit)
- コードと設定の分離 (init.d/conf.d)
- 拡張可能な起動スクリプト
- 状態の把握が可能なinitスクリプト
- SambaやNFSなど複数のコンポーネントを開始する複雑なinitスクリプト
- 自動による依存関係の計算と、サービスのオーダリング
- モジュール化されたアーキテクチャとオプションのコンポーネントの分離(CronやSyslogなど)
- 高速で柔軟なネットワークの利用(VPNやブリッジなどを含む)
- デバッグモード
脚注
[編集]- ^ “openrc-0.52.1”. December 24, 2023閲覧。
- ^ “openrc”, Analysis Summary (Ohloh) 2012年3月10日閲覧。
- ^ “DistroWatch.com: Put the fun back into computing. Use Linux, BSD.”. distrowatch.com. 2020年4月4日閲覧。
- ^ “5 Differences Between TrueOS & Linux”. 6 April 2020閲覧。
- ^ “Improving TrueOS: OpenRC”. 6 April 2020閲覧。
- ^ “History”. 6 April 2020閲覧。
- ^ “Developers”. 6 April 2020閲覧。
- ^ “4. Post Installation Configuration — TrueOS® User Guide” (英語). www.trueos.org. 2017年3月12日閲覧。
- ^ “Devuan ASCII 2.0.0 stable release” (英語). 2018年7月17日閲覧。
- ^ “user guide”. 6 April 2020閲覧。
- ^ “service script guide”. 6 April 2020閲覧。
- ^ OpenRC
- ^ “runit guide”. 6 April 2020閲覧。
- ^ “s6 Guide”. 6 April 2020閲覧。
- ^ “CGroups Support”. 5 April 2020閲覧。