Top / Software / Init

Init の FAQ

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

Debian はデフォルトではランレベル 2 が使用されます。

sysvinit なら/etc/inittab を見ると、

id:2:initdefault:

とあります。

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

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

例えば「GUI ログインしたい」といって、ランレベル 5 で起動しても意味ありません。 GDM 等がインストールされていれば、2 から 5 すべてのランレベルが GUI ログイン になります。

GUI ログインから CUI ログインにするには、GDM 等をアンインストールするか、CUI ログインしたいランレベルから GDM 等を起動しないように設定しましょう。 sysvinit の設定方法は sysv init スクリプトの管理をしたいを参照して下さい。

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

# service gdm stop

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

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

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

などがあります。

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

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

# invoke-rc.d hoge start

または

# /etc/init.d/hoge start

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

sysv 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 .

となります。

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

# update-rc.d -f hoge remove

としますが、これは自分で登録した sysv init スクリプトに対してのみ実行してください。 Debian パッケージのインストール時に登録された sysv init スクリプトに対して実行すると、該当パッケージをアップグレードした際に、設定が元に戻ってしまいます。 もし sysv 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 オプションをつけたものを書けばマウントされなくなります。

init が systemd の場合、この方法は使えないようです。

起動時に /tmp に tmpfs をマウントさせたい

/etc/default/tmpfs に

RAMTMP=yes

のように書くことで有効になります。 サイズを指定したい場合は

TMP_SIZE=40%

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

参照
man tmpfs

init が systemd の場合は追加で

# dpkg-reconfigure systemd

とすると有効になります。 なおサイズ指定には未対応です。

systemd がよくわからない

Arch Linux Japan の Wiki がとてもよくまとまっています。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-04 (日) 15:24:01 (3911d)