UbuntuのUpstartとrunitを比べてみると?

文:Vincent Danen(TechRepublic) 翻訳校正:村上雅章・野崎裕子
2009-03-25 08:00:00
  • このエントリーをはてなブックマークに追加

 本記事では、起動時におけるタスクやサービスの開始を取り扱うSysV initを置き替える、イベントベースのinitシステムである「Upstart」を採り上げている。

 筆者はAnnvixプロジェクトに参加していた際に、システムの起動方法やサービスの開始方法について興味を抱くようになった。それが高じて私は、初期化スクリプトを書き直し、従来のSysV initの代わりに「runit」を使うまでになったのである。得られたものは素晴らしいの一言に尽きる:サービスの起動が並列で行われるため、システムの起動時間は短くなるうえ、システムの起動や終了を行う一連のスクリプトのフットプリントもより小さくなり、実行速度が驚くほど高速化されたのである。

 また、最近になってFedora Core 10(FC10)をインストールした際、SysV initの代替としてUbuntuのUpstartが新たに使用できるようになっていることに気付いたのである。Upstartにはrunitやスーパバイザサービスを魅力あるものにしている多くの機能が搭載されている、あるいは搭載予定であることも考え、この機会にUpstartを試用し、runitやSysV initと比較してみることにした。

 Canonicalによると、UpstartはSysV initの代替となる、イベントベースのシステムであるという。つまりUpstartはタスクやサービスの、起動時における開始や、シャットダウン時における終了、システム稼働中における管理を行うものである。エンドユーザーの観点から見た場合、このシステムはSysV initを用いた場合と同じように起動する。

 由緒ある/etc/inittabも健在であるものの、デフォルトのランレベルを指定するためだけに用いられている。他の指定はすべて、/etc/event.d/(Fedoraの場合)や/etc/init/jobs.d/(Ubuntuの場合)中の設定ファイルを通じて行われるようになっている。つまり、こういったファイルによって/etc/inittabにある特定の行が置き換えられるわけである。例えば、/etc/event.d/tty1ファイルには以下の指定が記述されている。

start on stopped rc2
start on stopped rc3
start on stopped rc4

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
exec /sbin/mingetty tty1

 一方、SysV initシステムでは、/etc/inittabの該当行が以下のようになっている。

1:2345:respawn:/sbin/mingetty tty1
  • 新着記事
  • 特集
  • ブログ