runit
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/06/23 04:07 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は、Unix系オペレーティングシステム (OS) のシステム全体におけるプロセスの初期化・管理・完了を行う、initおよびサービス管理スキームである。daemontoolsプロセススーパービジョンツールキットの再実装[3]である。システムサービスのスタートアップを並列化しているので、OSのブート時間を短縮できる[4]。
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 (2004年2月10日). “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日). 2013年12月12日閲覧。
- 1 2 Pape, Gerrit. “runit - benefits”. 2013年4月23日閲覧。
- ↑ Pape, Gerrit. “replacing init”. 2014年8月11日閲覧。
- ↑ Pape, Gerrit. “use with traditional init”. 2014年8月11日閲覧。
- ↑ “Process management with runit”. rubyworks.rubyforge.org. 2014年4月14日閲覧。
- ↑ “VoidLinux”. 2020年6月28日閲覧。
- ↑ “Gentoo”. 2024年4月28日閲覧。
外部リンク
- Run itのページへのリンク