kazmax - Linux で自宅サーバー

inittab - ファイルのフォーマットと規約の説明 - Linux コマンド集 一覧表

  1. 名前
  2. 概要
  3. ファイル
  4. 著者
  5. 関連項目

名前

inittab - sysv-互換のinitが使うinittabファイルの書式

概要

inittab ファイルは、ブートアップ時や通常運転中にどの様なプロセスを 起動するのか(例えば /etc/init.d/boot, /etc/rc, getty等)を指定するファイルである。   init (8) は複数のランレベル を区別する。 それぞれのランレベル に対して固有のプロセス群を起動する事ができる。 ランレベルとして有効なものは、0 -6 と、 ondemand エントリーとしてのA , B , C である。 inittab ファイル中のエントリーは次の書式で記される :

id :runlevels :action :process

`#' で始まる行は無視される。
inittab ファイル中でエントリーを識別するための、 1-4文字からなる固有の識別子である (バージョン5.2.18以前の、又はa.outのライブラリでコンパイルされた sysvinitでは2文字までに制限されている) 。
註:gettys や他のログインプロセスに対しては、 id 欄と対応する tty の添字を同じにすべきである (例えばtty1 に対しては1 というように)。 でないと、ログインのアカウンティングが正常に動作しない可能性がある。
は、指定した動作を行なうランレベルの一覧を示す。
はどのような動作を行うべきかをあらわす。
には実行されるプロセスを指定する。 プロセス欄の最初の文字が`+'である場合、 init はそのプロセスに対して utmp 及び wtmp アカウンティングを行わない。 これは gettys が自分のutmp/wtmpの面倒を自分でみてしまうために必要となっている。 これは歴史上有名なバグでもある。

runlevels には異なったランレベルを表わす複数の文字を書いても良い。 例えば、123 はランレベル1, 2, 3でそのプロセスを起動することを表わす。 ondemand エントリーのためのrunlevelsA , B , C のいずれか一つのみを書くことができる。 sysinitboot 及びbootwait エントリーの runlevel 欄は無視される。

システムのランレベルが変更された場合は、 現在実行中のプロセスのうち新たなランレベルに記されていないものは、 先ず-2SIGTERM0により、次いで-2SIGKILL0シグナルにより kill される。

action として有効なものは次の通り:
プロセスが終了した場合は常に再起動する(例えば getty) 。
指定したランレベルになった時に一度だけ起動する。 init はこのプロセスが終了するまで待機する。
指定したランレベルになった時に一度だけ実行する。
システムブート中に実行される。 runlevels 欄は無視される。
システムブート中に実行されるが、 init はそれが終了するまで待機する (例えば/etc/rc)。 runlevels 欄は無視される。
何もしない。
ondemand ランレベルの印が付いたプロセスは、 指定したondemand ランレベルになった時に常に実行される。 しかし、ランレベルは変化しない (ondemand ランレベルとは`a', `b', `c'のことである)。
initdefault エントリーは、システムブート完了時に入るべき ランレベルを示す。 initdefault エントリーが存在しない場合は、 init はどのランレベルに入るべきかをコンソールに問い合わせる。 process 欄は無視される。
システムブート中に実行される。 このエントリーはいかなるboot 及びbootwait エントリーよりも 先に実行される。 runlevels 欄は無視される。
電源に異常が起きた時に実行されるプロセス。 init は普通コンピュータと接続されている UPS と通信しているプロセスから このことを知らされる。 init はこのプロセスが終了するまで待機する。
powerwait と同様だが、init はこのプロセスが完了するのを 待たないところが異なる。
このプロセスは電源が回復したことをinit が知った時に実行される。
このプロセスは電源に異常が起き、さらに外部 UPS のバッテリー容量が 少なくなったことを(外部 UPS と監視プロセスがこのような状態を 検出できるようになっている場合に)init が知った時に実行される。
init がSIGINTシグナルを受け取ったときに実行される。 これは誰かがシステムコンソールでCTRL-ALT-DEL という組み合わせで キーを押したことを意味する。 システムをシングルユーザレベルにしたい時やマシンをリブート したい時など、shutdown 的なことを行いたい場合に実行される。
init がキーボードハンドラーから、コンソールキーボード上で特定の組み合わせ のキー入力が行なわれた、とのシグナルを受け取ったときに実行される。
この機能に関する文書はまだ不完全である; kbd-x.xx パッケージ中を探せばより多くの資料が見つかるだろう (この文書を書いている時点で最新のものは kbd-0.94 である)。 基本的には、あるキーの組み合わせを"KeyboardSignal"という動作に結びつけたい という場合に用いられる。 例えば、Alt-上向き矢印というキーの組み合わせをこの用途に使いたい場合は、 キーマップファイル中に次の様に書いておけばよい:

alt keycode 103 = KeyboardSignal

以下は、昔の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


このinittabファイルはブート中に/etc/rc を実行し、 tty1-tty4でgettyを起動する。

次に示すのは、異なったランレベルがある手の込んだ例である (スクリプト中のコメントを参照):

# ブート後に入るべきランレベル
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)が変更を行った。

関連項目