INITTAB(5) | Linux System Administrator's Manual | INITTAB(5) |
名前
inittab - sysv-互換のinitが使うinittabファイルの書式概要
inittabファイルは、ブートアップ時や通常運転中にどの様なプロセスを起動するのか(例えば /etc/init.d/boot, /etc/rc, getty等)を指定するファイルである。 init(8) は複数の ランレベルを区別する。それぞれの ランレベルに対して固有のプロセス群を起動する事ができる。ランレベルとして有効なものは、 0- 6と、 ondemandエントリーとしての A, B, Cである。 inittabファイル中のエントリーは次の書式で記される :- id
-
は
inittab ファイル中でエントリーを識別するための、 1-4文字からなる固有の識別子である (バージョン5.2.18以前の、又はa.outのライブラリでコンパイルされた sysvinitでは2文字までに制限されている) 。
- runlevels
- は、指定した動作を行なうランレベルの一覧を示す。
- action
- はどのような動作を行うべきかをあらわす。
- process
- には実行されるプロセスを指定する。プロセス欄の最初の文字が`+'である場合、 init はそのプロセスに対して utmp 及び wtmp アカウンティングを行わない。これは gettys が自分のutmp/wtmpの面倒を自分でみてしまうために必要となっている。これは歴史上有名なバグでもある。
runlevelsには異なったランレベルを表わす複数の文字を書いても良い。例えば、 123はランレベル1, 2, 3でそのプロセスを起動することを表わす。 ondemandエントリーのための runlevelsは A, B, Cのいずれか一つのみを書くことができる。 sysinit、 boot及び bootwaitエントリーの runlevel欄は無視される。
システムのランレベルが変更された場合は、現在実行中のプロセスのうち新たなランレベルに記されていないものは、先ずSIGTERMにより、次いでSIGKILLシグナルにより kill される。
action として有効なものは次の通り:
- respawn
- プロセスが終了した場合は常に再起動する(例えば getty) 。
- wait
- 指定したランレベルになった時に一度だけ起動する。 init はこのプロセスが終了するまで待機する。
- once
- 指定したランレベルになった時に一度だけ実行する。
- boot
- システムブート中に実行される。 runlevels欄は無視される。
- bootwait
- システムブート中に実行されるが、 init はそれが終了するまで待機する (例えば/etc/rc)。 runlevels欄は無視される。
- off
- 何もしない。
- ondemand
- ondemandランレベルの印が付いたプロセスは、指定した ondemandランレベルになった時に常に実行される。しかし、ランレベルは変化しない ( ondemandランレベルとは`a', `b', `c'のことである)。
- initdefault
- initdefaultエントリーは、システムブート完了時に入るべきランレベルを示す。 initdefaultエントリーが存在しない場合は、 init はどのランレベルに入るべきかをコンソールに問い合わせる。 process欄は無視される。
- sysinit
- システムブート中に実行される。このエントリーはいかなる boot及び bootwaitエントリーよりも先に実行される。 runlevels欄は無視される。
- powerwait
- 電源に異常が起きた時に実行されるプロセス。 init は普通コンピュータと接続されている UPS と通信しているプロセスからこのことを知らされる。 initはこのプロセスが終了するまで待機する。
- powerfail
- powerwaitと同様だが、 initはこのプロセスが完了するのを待たないところが異なる。
- powerokwait
- このプロセスは電源が回復したことを initが知った時に実行される。
- powerfailnow
- このプロセスは電源に異常が起き、さらに外部 UPS のバッテリー容量が少なくなったことを(外部 UPS と監視プロセスがこのような状態を検出できるようになっている場合に) initが知った時に実行される。
- ctrlaltdel
- initがSIGINTシグナルを受け取ったときに実行される。これは誰かがシステムコンソールで CTRL-ALT-DELという組み合わせでキーを押したことを意味する。システムをシングルユーザレベルにしたい時やマシンをリブートしたい時など、 shutdown的なことを行いたい場合に実行される。
- kbrequest
-
initがキーボードハンドラーから、コンソールキーボード上で特定の組み合わせのキー入力が行なわれた、とのシグナルを受け取ったときに実行される。
例
以下は、昔のLinuxで使われていたものに似たinittabの例である:# linux用のinittab
id:1:initdefault:
rc::bootwait:/etc/rc
1:1:respawn:/etc/getty 9600 tty1
2:1:respawn:/etc/getty 9600 tty2
3:1:respawn:/etc/getty 9600 tty3
4:1:respawn:/etc/getty 9600 tty4
次に示すのは、異なったランレベルがある手の込んだ例である (スクリプト中のコメントを参照):
# ブート後に入るべきランレベル
id:2:initdefault:
# 何より先ずシステムの初期化をする。
si::sysinit:/etc/rc.d/bcheckrc
# ランレベル0及び6はそれぞれ haltとreboot。
# 1 はメンテナンスモード
l0:0:wait:/etc/rc.d/rc.halt
l1:1:wait:/etc/rc.d/rc.single
l2:2345:wait:/etc/rc.d/rc.multi
l6:6:wait:/etc/rc.d/rc.reboot
# "三つ指をついてリセット"された時に何をすべきか。
ca::ctrlaltdel:/sbin/shutdown -t5 -rf now
# ランレベル2及び3: コンソールでgettyを実行する
# (レベル3の場合はモデムポートでも)。
1:23:respawn:/sbin/getty tty1 VC linux
2:23:respawn:/sbin/getty tty2 VC linux
3:23:respawn:/sbin/getty tty3 VC linux
4:23:respawn:/sbin/getty tty4 VC linux
S2:3:respawn:/sbin/uugetty ttyS2 M19200
ファイル
/etc/inittab著者
initはMiquel van Smoorenburg (miquels@drinkel.ow.org)により作成された。この man ページは Sebastian Lederer (lederer@francium.informatik.uni-bonn.de)が作成し Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de)が変更を行った。関連項目
init(8), telinit(8)May 19, 1998 |