Provided by:
manpages-ja_0.5.0.0.20080615-1_all 
telinit
/sbin/telinit は /sbin/init にリンクされている。 /sbin/telinit
は一文字の引数を受け取り、 init
にシグナルを送って適切な動作を行なわせる。 telinit への指示には、
以下に示すような引数が利用でい襦
0,1,2,3,4,5,6
指定されたランレベルに変更するよう init に伝える。
a,b,c /etc/inittab 中で、ランレベル a, b, c
のいずれかを含むエントリだけを実行するよう init に伝える。
Q または q
/etc/inittab ファイルを調べ直すよう init に伝える。
S または s
シングルユーザモードに切り替えるよう init に伝える。
U または u
(状態はそのままで) 自分自身を再実行するよう init に伝える。
/etc/inittab は調べ直さない。 ランレベルは Ss12345
のいずれかでなければならない。
それ以外の場合は、この要求は黙って無視される。
init がプロセスに TERM シグナルを送ってから KILL
シグナルを送るまでの時間を、telinit から指示することもでい襦
デフォルトでは 5 秒に設定されているが、-t sec オプションで変更でい襦
telinit は適切な特権を持ったユーザのみが実行でい襦
init のバイナリは、自分の _D を見て、 自分が init なのか
telinit なのかを判断する。 本物の init のプロセス ID は常に 1 である。
よって、telinit を起動するかわりに init を起動しても構わない。
数
init は子プロセスに以下のような環曲竸瑤鮴瀋蠅垢:
PATH /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
INIT_VERSION
名前の通り。 あるスクリプトが init
により直接実行されたのかどうかを見分けるのに便利。
RUNLEVEL
システムの現在のランレベル。
PREVLEVEL
直前のランレベル (ランレベルを変更した場合に便利)。
CONSOLE
システムコンソール。これは実際はカーネルから継承したものである。
しかしこれが設定されていなかった場合は、 init はデフォルトで
/dev/console を設定する。
グ
ブートモニタ (例えば LILO) から init
に様々なフラグを渡すことが可能である。 init
は以下のようなフラグを受け付ける:
-s, S, single
シングルユーザモードでブートする。 このモードでは /etc/inittab
を参照する。 またシングルユーザモードのシェルが起動される前に
ブートアップ rc スクリプトが実行される。
1-5 ブート時に入るべぅ薀鵐譽戰襦
-b, emergency
他の起動用スクリプトは実行せず、
直接シングルユーザシェルへとブートする。
-a, auto
LILO ブートローダは、 デフォルトのコマンドラインで
(ユーザの介入なしに) カーネルを起動すると、 コマンドラインに単語
"auto" を追加する。 init はこの単語を見つけると、"AUTOBOOT" 環-
変数を "yes" に設定する。 ただしこの機能をセ-
ュリティの判断には使えない。 あたりまえだが、 ユーザーは "auto" や
-a を手動でコマンドラインに追加することもでい襦
-z xxx
-z の引数は無視される。
これを使うとコマンドラインが少し長くなるので、
そのためにスタックを若干余分に使用するようになる。 すると init
にコマンドラインを操作し、 ps(1)
に現在のランレベルを表示させるようにでい襦
ス
init はメッセージのやりとりのために、 /dev にある FIFO である
/dev/initctl を listen している。 telinit はこれを用いて init
と通信する。 このインターフェースは十分に文書化されていない。
興味を持った人は、init のソース tar アーカイブの src/
サブディレクトリにある initreq.h を調べてほしい。
ル
init はいくつかのシグナルに反応する。
SIGHUP
init は /etc/initrunlvl と /var/log/initrunlvl を探す。
もしこれらのどちらかのファイルがあり、 ランレベルが ASCII
コードで書かれていたら、 init はそのランレベルに切り替わる。
_telinit q が実行されたと-
と同じ動作をする。
SIGUSR1
このシグナルを受け取ると、init は制御用 FIFO である /dev/initctl
を一旦クローズして再オープンする。 ブートスクリプトが /dev
を再マウントした時に便利である。
SIGINT
通常、カーネルは CTRL-ALT-DEL が押されるとこのシグナルを init
に送る。 これにより ctrlaltdel アクションが実行される。
SIGWINCH
カーネルは KeyboardSignal ァ爾押されるとこのシグナルを送る。
これにより kbrequest アクションが実行される。
拠
init は System V の init と互換である。 init は /etc/init.d
ディレクトリや /etc/rc{runlevel}.d
ディレクトリのスクリプトと密接に連係しながら動作する。
あなたのシステムがこの規則に従っているなら、 /etc/init.d ディレクトリに
README があり、
スクリプトがどのように動作するかが説明されているはずである。
ル
/etc/inittab
/etc/initscript
/dev/console
/etc/ioctl.save
/var/run/utmp
/var/log/wtmp
/dev/initctl
告
init は、 生成したプロセスとその子孫とが、
それらのために作ったプロセスグループに留まっていると仮定している。
プロセスグループが元々のものと変わっている場合は、 init
はそのプロセスを kill でい覆い里如
異なる二つのプロセスが同一の端末ラインから入力を読み込む、
といった現象が起い討靴泙Σ椎柔がある。
値
init は、あるエントリが 2 分間に 10
回以上繰り返して再生成されるのを発見すると、
コマンド文字列に誤りがあるとみなし、
システムコンソールにエラーメッセージを表示し、 5
分以上経過するかシグナルを受け取るまで、
それ以上そのエントリの再生成を拒否する。
こうすることによって、/etc/inittab 中に書ご岼磴いあったり、
そのエントリで使用するプログラムが削除されている場合に、
システム資源を使い尽くしてしまうことを防いでいる。
者
Miquel van Smoorenburg (miquels@cistron.nl)。 もとの man ページは
Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de) による。
目
getty(1), login(1), sh(1), runlevel(8), shutdown(8), kill(1),
inittab(5), initscript(5), utmp(5)
23 August 2001 INIT(8)