トップQs
タイムライン
チャット
視点

Runit

ウィキペディアから

Runit
Remove ads

runitオペレーティングシステム (OS) 全体におけるプロセスの初期化・管理・完了を行う、Unix系オペレーティングシステム用のinitおよびサービス管理スキームである。runitはdaemontoolsプロセススーパービジョンツールキットの再実装[3]で、多くのLinuxベースのOSだけでなく、BSDSolarisでも動作する。runitはシステムサービスのスタートアップ並列化を特徴とするので、OSのブート時間を短縮できる[4]

概要 作者, 初版 ...

runitはinitデーモンとして起動されると、他の全てのプロセスについての直接的または間接的な祖先となる。runitはブート中に開始される最初のプロセスで、システムがシャットダウンされるまで起動し続ける。runitは独立したサービスマネージャとして、他のinitシステムと共に使用されることも多い。サービスマネージャの役割により、非特権ユーザーが個人的なサービスを統合したり、initシステムは管理しないのに現在使用中のサービスをルートユーザーが管理するために使用できる。

Thumb
Void Linuxを起動しているrunit
Remove ads

設計

runitのコードベースは小さく、モジュール形式でなおかつポータブルであることに重点が置かれている。runitにおけるinitの役割は、1回の初期化・プロセスのスーパービジョン・停止または再起動の3段階に分けられる。1段階目と3段階目は実行されるオペレーティングシステムに適合させねばならないが、2段階目はPOSIX準拠のOS全てに移植できる[4]。これら3つの段階は、それぞれ1・2・3という名前が付いた3つの実行ファイル(通常はシェルスクリプト)で設定できる。

2段階目は通常runsvdirという名前のバイナリを呼び出す。これはグローバルデーモン管理を担当するプロセスである。runsvdirは引数で渡されたフォルダ内にある全てのデーモンそれぞれに対し個別にウォッチドッグを生成すると、生成されたウォッチドッグ各々がデーモン(およびそれに関連付けられたロガーサービス)を起動して、死んだ場合は再起動する。runsvdirはデーモンが追加または削除された場合、そのウォッチドッグをkillしたり新しいウォッチドッグを開始したりする。特有の名前が付いた実行ファイルは、デーモンのライフにおける様々なフェイズ (run, check, finish, ...) を説明するために使用される。その実行ファイルはシグナルを傍受したり特定のスクリプトがあればそれを実行することもでき、デーモン制御インタフェースを公開するために名前付きパイプを作成する。

Remove ads

利用

runitはsysvinitの一時的な代替[5]としても、サービスのスーパーバイザーとしても使われる(後者の場合、inittabファイルで指定されたプロセスを起動するPIDが1である親プロセスのsysvinitと共に使われたり、sysvinit以外の他のinitシステムと共に使われる)[6]Ruby on Railsを起動できるソフトウェアであるRubyWorksスタックは、そのスイートにrunitを組み入れた[7]

採用

runitがデフォルトinitシステムであるOSは以下の通り:

runitが「公式に」利用できるinitシステムであるOSは以下の通り:

Remove ads

脚注

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads