Top / Old / etch / Software / Init

Init の FAQ

Debian のランレベルの扱いについて

Debian はデフォルトではランレベル 2 が使用されます。
/etc/inittab を見ると、

id:2:initdefault:

とあります。
また、原則ランレベル 2 から 5 まですべて同じ init スクリプトが実行されます。

  • ランレベル 0 = 停止
  • ランレベル 1 = シングルユーザモード
  • ランレベル 2 = マルチユーザモード (デフォルト)
  • ランレベル 3 = 2 と同じ
  • ランレベル 4 = 2 と同じ
  • ランレベル 5 = 2 と同じ
  • ランレベル 6 = 再起動

例えば「GUI ログインしたい」といって、ランレベル 5 で起動しても意味ありません。 GDM 等がインストールされていれば、2 から 5 すべてのランレベルが GUI ログイン になります。 GUI ログインから CUI ログインにするには、GDM 等をアンインストールするか、CUI ログインしたいランレベルから GDM 等を起動しないように設定しましょう。 設定方法は init スクリプトの管理をしたいを参照して下さい。

GDM をインストールしていて「一度だけ CUI ログインしたい」という場合は

# invoke-rc.d gdm stop

または

# /etc/init.d/gdm stop

として GDM を停止すれば、X が終了し、CUI ログインに切り換わります。

init スクリプトの管理をしたい

init スクリプトの起動、停止、並びに init スクリプトの登録 (シンボリックリンク) を管理する、ランレベルエディタをインストールしましょう。

などがあります。

なお、以下にランレベルエディタを使わずに操作する方法も説明しますが、特別な理由がない限り、これらの専用ツールの利用を推奨します。

システムが起動した後で init スクリプト (ここでは hoge とします) を実行するには、

# invoke-rc.d hoge start

または

# /etc/init.d/hoge start

とします。 この際 start, stop, restart, reload, force-reload のいずれかのパラメータ (引数) をつける必要があります。

init スクリプトを登録するには、/etc/init.d にスクリプトを置き、update-rc.d を実行します。 update-rc.d は /etc/init.d から /etc/rc*.d へシンボリックリンクを張るツールです。

# update-rc.d hoge defaults

を実行すると、

  • ランレベル 2 3 4 5 の順序 20hoge start を実行
  • ランレベル 0 1 6 の順序 20hoge stop を実行

という風に登録されます。 これらを明示的に指定する場合

# update-rc.d hoge start 20 2 3 4 5 . stop 20 0 1 6 .

となります。

init スクリプトの登録を抹消するには

# update-rc.d -f hoge remove

としますが、これは自分で登録した init スクリプトに対してのみ実行してください。 Debian パッケージのインストール時に登録された init スクリプトに対して実行すると、該当パッケージをアップグレードした際に、設定が元に戻ってしまいます。 もし init スクリプトの実行を止めたいのであれば、/etc/rc*.d のシンボリックリンクを削除せずに、頭文字を S (起動する) から K (停止する) にリネームしてください。

# mv /etc/rc2.d/S??inetd /etc/rc2.d/K??inetd

自作の init スクリプト作成は、/etc/init.d/skeleton が参考になります。
同名の init スクリプトが Debian パッケージによって提供されている場合、該当パッケージインストール時に上書きされてしまうので注意してください。

参考:

起動時の自動マウントを何とかしたい

カーネルがサポートしていると tmpfs などは自動的にマウントされます。
デフォルトでは搭載している物理 RAM サイズの半分が割り当てられてしまいますが、 これを変更したい場合には、/etc/default/tmpfs に、

SHM_SIZE=64m

と書くことでサイズを指定できます。

また、自動マウントを止めるには /etc/fstab に

tmpfs /dev/shm tmpfs noauto 0 0

という感じで noauto オプションをつけたものを書けばマウントされなくなります。

/var/run や /var/lock を RAM disk (tmpfs) にしたい

etch 以降の sysvinit (2.86.ds1-24 以降) では、/var/run や /var/lock を tmpfs としてマウントできます。 /etc/default/rcS に

RAMRUN=yes
RAMLOCK=yes

のように書くことで有効になります。 /var/tmp も tmpfs としてマウントしたいと思うかもしれませんが、これは、 FHS に違反するので推奨されません。

サイズを変更したい場合には、/dev/shm 同様 /etc/default/tmpfs に

RUN_SIZE=1024k
LOCK_SIZE=2m

のように書いてください。

ただし、一部のアプリは /var/run 配下に特定のディレクトリが作られていることを期待しているため、不具合が生じるかもしれません。

参照
man rcS


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-12 (金) 23:13:56 (3143d)