/etc/inittab ファイルにはバックグラウンドプログラムが含まれており、 これらを使ってシステムを動かし続けます。 こういったプログラムの一つが getty で、 シリアルポート一つにつき 1 個の getty プロセスがあります。
Figure 6-2. getty は、 /etc/inittab のエントリに基づき init が起動する
co:2345:respawn:/sbin/getty ttyS0 CON9600 vt102 |
inittab の各フィールドはコロン (:) で区切られており、 以下のものを含んでいます。
inittab 内の任意のエントリです。 このエントリが inittab の他の場所に現れていない限り大丈夫です。 このエントリはコンソール用なので、 co という名前にしました。
Red Hat Linux 7.3 には kudzu というプログラムがあり、 ブート時にシステム設定を行ないます。 kudzu は co という inittab のエントリを特別扱いします。 このエントリを用いて、付属のモニター・キーボード、 あるいはシリアルコンソールの設定を行なうのです。 co の値をハードコーディングすれば、 これは防げます。
このエントリがスタートするランレベルです。 動作可能なシステムについては、 ランレベル 2、3、4 それに 5 が使えます。 他のランレベルでは getty は使わないでください。 シリアルコンソールは、ランレベル 1 (ないしはシングルユーザーモード)で、 getty が無くても動作します。
そのプログラムが死んだ場合に、それを再起動します。 コンソールからログアウトしたとき、 新しい login プロンプトが現れるように、 再起動させたいんです。
実行すべきコマンドです。この場合、 /etc/gettydefs に存在する CON9600 の設定を使って、 /dev/ttyS0 に接続するよう、 getty に指示しています。 このエントリは 9600bps で動いている端末を表しています。 この端末は VT100 の後継モデルだと最初に仮定しています。
/etc/inittab の変更後、以下のコマンドを使って init を再起動します。
あるいは kill -HUP 1 コマンドを使って、 init にハングアップシグナルを送ってもかまいません。 でもこの方法はお奨めしません。というのは、もしタイプミスをして、 本当に init を殺してしまうと、 その瞬間にシステムが突然停止してしまうからです。
inittab 内のコメントと Red Hat の kudzu: kudzu は # のコメント行を使って、 付属のモニター・キーボードやシリアルポートに対する getty の起動や停止を行なっています。 本当のコメントと kudzu で保存している行が混乱しないように、 本物のコメント行は、 ## で始めて下さい。