runit
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/20 20:04 UTC 版)
作者 | Gerrit Pape |
---|---|
初版 | 2004年2月10日[1] |
最新版 |
2.2.0
/ 2024年9月29日[2] |
プログラミング 言語 | C、シェル |
対応OS | Linux, FreeBSD, OpenBSD, NetBSD, macOS, Solaris |
種別 | initデーモン |
ライセンス | 修正BSDライセンス |
公式サイト |
smarden![]() |
runitはオペレーティングシステム (OS) 全体におけるプロセスの初期化・管理・完了を行う、Unix系オペレーティングシステム用のinitおよびサービス管理スキームである。runitはdaemontoolsプロセススーパービジョンツールキットの再実装[3]で、多くのLinuxベースのOSだけでなく、BSDやSolarisでも動作する。runitはシステムサービスのスタートアップ並列化を特徴とするので、OSのブート時間を短縮できる[4]。
runitはinitデーモンとして起動されると、他の全てのプロセスについての直接的または間接的な祖先となる。runitはブート中に開始される最初のプロセスで、システムがシャットダウンされるまで起動し続ける。runitは独立したサービスマネージャとして、他のinitシステムと共に使用されることも多い。サービスマネージャの役割により、非特権ユーザーが個人的なサービスを統合したり、initシステムは管理しないのに現在使用中のサービスをルートユーザーが管理するために使用できる。

設計
runitのコードベースは小さく、モジュール形式でなおかつポータブルであることに重点が置かれている。runitにおけるinitの役割は、1回の初期化・プロセスのスーパービジョン・停止または再起動の3段階に分けられる。1段階目と3段階目は実行されるオペレーティングシステムに適合させねばならないが、2段階目はPOSIX準拠のOS全てに移植できる[4]。これら3つの段階は、それぞれ1・2・3という名前が付いた3つの実行ファイル(通常はシェルスクリプト)で設定できる。
2段階目は通常runsvdirという名前のバイナリを呼び出す。これはグローバルデーモン管理を担当するプロセスである。runsvdirは引数で渡されたフォルダ内にある全てのデーモンそれぞれに対し個別にウォッチドッグを生成すると、生成されたウォッチドッグ各々がデーモン(およびそれに関連付けられたロガーサービス)を起動して、死んだ場合は再起動する。runsvdirはデーモンが追加または削除された場合、そのウォッチドッグをkillしたり新しいウォッチドッグを開始したりする。特有の名前が付いた実行ファイルは、デーモンのライフにおける様々なフェイズ (run, check, finish, ...) を説明するために使用される。その実行ファイルはシグナルを傍受したり特定のスクリプトがあればそれを実行することもでき、デーモン制御インタフェースを公開するために名前付きパイプを作成する。
利用
runitはsysvinitの一時的な代替[5]としても、サービスのスーパーバイザーとしても使われる(後者の場合、inittabファイルで指定されたプロセスを起動するPIDが1である親プロセスのsysvinitと共に使われたり、sysvinit以外の他のinitシステムと共に使われる)[6]。Ruby on Railsを起動できるソフトウェアであるRubyWorksスタックは、そのスイートにrunitを組み入れた[7]。
採用
runitがデフォルトinitシステムであるOSは以下の通り:
- antiX(Debianベース、バージョン19より)
- Dragora GNU/Linux-Libre(Dragora 2より)
- Void Linux[8]
runitが「公式に」利用できるinitシステムであるOSは以下の通り:
- Artix Linux(Archベース)
- Devuan(Debianベース、バージョン3.1.0より)
- Gentoo Linux[9]
- Hyperbola GNU/Linux-libre(ArchおよびDebianベース)
脚注
- ^ Pape, Gerrit (10 February 2004). "runit-1.0.0 release". gmane.comp.sysutils.supervision.general (Mailing list). 2013年12月13日時点のオリジナルよりアーカイブ。2013年12月10日閲覧。
- ^ “runit-2.2.0 available”. www.mail-archive.com (2024年9月29日). 2024年10月3日閲覧。
- ^ “Init Scripts Considered Harmful”. sanityinc.com (2007年11月11日). 12 December 2013閲覧。
- ^ a b Pape, Gerrit. “runit - benefits”. 23 April 2013閲覧。
- ^ Pape, Gerrit. “replacing init”. 11 August 2014閲覧。
- ^ Pape, Gerrit. “use with traditional init”. 11 August 2014閲覧。
- ^ “Process management with runit”. rubyworks.rubyforge.org. 14 April 2014閲覧。
- ^ “VoidLinux”. 28 June 2020閲覧。
- ^ “Gentoo”. 28 April 2024閲覧。
外部リンク
- R-unitのページへのリンク