Ubuntu Edgyでランレベルを設定する方法

2007年2月27日(Tuesday) 02:21am
Rating: 4

Ubuntuには/etc/inittabが存在しなくてぎょっとする。
これは、Edgyからinitをやめてupstartを採用(CNET Japan)したため。

upstartをデフォルトで採用しているのは今のところUbuntuだけだろう(Debianでもパッケージ自体は利用できる模様)。
ドキュメントもほとんどなくて暴挙に近い決定だと思う。
「inittabが無いとなるとランレベルの設定方法はどうすりゃ良いんだ」と途方に暮れていたものの、探し回って先ほどようやく判明した。

やり方は2通りある。

1つ目は、/etc/inittabを書くという意外な解(ubuntuforums)。
実は/etc/inittabがシステムに存在している場合はそれを読みに行くらしい。
ただし、テンプレートになる設定ファイルは用意されていないので、自分で書くか、互換性に気をつけながら他のディストリビューションから持ってくるしかない。

そして、2つ目の方法(おそらくこちらが本筋)は/etc/event.d/rc-defaultという設定ファイルを編集するパターン。
先ほどの「inittabが存在すればそれを読む」というのも、このファイルから処理しているようだ。
inittabがない場合は、一番下の”telinit 2″という行に落ちる。
Ubuntu(というかupstart)にrunlevelがあったこと自体気づかなかったが、そのrunlevelが2だというのも変わっている。

結論としては、このtelinitの引数を変更することでブート時のランレベルを変更できる。

なお、各ランレベルで起動するデーモンを設定するためにsysv-rc-confというコマンドも用意されている。コマンドがない場合はapt-getでインストール可能。
Redhat系に入っているntsysvなどとほぼ同様のツール。

たとえばrunlevel 3のデーモンをsysv-rc-confで定義したうえで、/etc/event.d/rc-defaultに”telnet 3″を設定すれば、自分でカスタマイズした通りのデーモンを起動することができる。

“Ubuntu Edgyでランレベルを設定する方法”へのトラックバック

  1. ¤¤¤é¤ó¤³¤È¡£ Says:

    [Linux]ubuntu6.10¤Ë¤Ï/etc/inittab¤¬¤Ê¤¤…

    ºÇ¶á¤ª¤¤¤é¤¬ubuntu-ja forum¤Ë½ÐËפ·¤Æ¤¤¤ë¤Î¤ÏÊ̤˥ª¡¼¥×¥ó¥½¡¼¥¹¥à¡¼¥Ö¥á¥ó¥È¤ÎÉÛ¶µ¤Ê¤ó¤«¤Î¤¿¤á¤Ç¤Ê¤¯¡¢¿·¤·¤¤´Ä¶­¤ò³Ð¤¨¤Æ¤¤¤¯¤Ë¤Ï¡Ö¼ÁÌä…

  2. ubuntu日記 Says:

    [ubuntu]EdgyでのCtrl-Alt-Deleteの無効化…

    Edgyはupstartを採用しているため、/etc/inittabがありません。 と、いうのを今日知ってあせってましたがランレベルを変更する方法はうるめねっと技研 - Linux派 -さんの「Ubuntu Edgyでランレベ…

  3. muneda’s diary Says:

    Ubuntuでデフォルトランレベルを設定する方法…

    すべては /usr/share/doc/upstart/README.Debian.gz に書かれている読め.

    % dpkg -S /usr/share/doc/upstart/README.Debian.gz
    upstart: /usr/share/doc/upstart/README.Debian.gz

    というのは味気ないので少し調べたことも書いて…