Linuxを使い始めた人,資格試験合格を目指す人を対象に,模擬試験形式でLinuxの基礎を解説します。

問題:次の説明文のA~Dに,適切な語句を入れなさい。

システム起動時のデフォルトのラン・レベルは,( A )ファイルの( B )を記述した行で定義される。システム起動後のラン・レベルの変更は,( C )コマンドや( D )コマンドで行える。

ポイント:initは,システムで最初に実行されるプロセスです。/etc/inittabファイルのラン・レベルの設定に従って,各ラン・レベルのサービスを起動します。/sbin/initコマンドを実行すれば,システム起動後のラン・レベルを変更できます。システムの停止や再起動もinitコマンドでできます。

キーワード:init,/etc/inittab,仮想コンソール

 図2は,ラン・レベルを設定する/etc/inittabファイルの一部を表示した例です。このファイルの基本書式は,

id:ラン・レベル:アクション:コマンド

となっています。各項目の説明は,表2を参照してください。「アクション」の指定方法は,表3にまとめました。

図2●/etc/inittabファイルの例
図2●/etc/inittabファイルの例
[画像のクリックで拡大表示]

表2●/etc/inittabファイルの基本書式に入る項目の説明
表2●/etc/inittabファイルの基本書式に入る項目の説明

表3●/etc/inittabの「アクション」項目の設定書式
[画像のクリックで拡大表示]
表3●/etc/inittabの「アクション」項目の設定書式

 図2の最終行は,「ラン・レベル5では,『/etc/X11/prefdm -nodaemon』を実行する」ことを表しています。prefdmは,X Window Systemのディスプレイ・マネージャを起動するシェル・スクリプトです。これによってグラフィカル・ログインの画面が表示されます。

ブート時のラン・レベル

 アクション部分が「initdefault」になっている最初の行は,システム起動時のラン・レベルを指定しています。この行にはコマンドを記述しません。

 起動時のラン・レベルは,この行を修正することで変更できます。inittabファイルの編集は,間違えるとLinuxを起動できなくなる可能性があります。注意して編集してください。

 現在のラン・レベルは,runlevelコマンドで確認できます。

$ runlevel
N 5

 実行結果は「以前のラン・レベル」と「現在のラン・レベル」が順に表示されます。以前のラン・レベルが「N」の場合は,システム起動時からラン・レベルが変更されていないことを示します。

起動後のラン・レベル

 起動後のラン・レベルは,/sbin/initコマンドや/sbin/telinitコマンドを使って変更できます。telinitコマンドはinitコマンドへのシンボリック・リンクになっています。

 現在のラン・レベルが5の場合,

# init 3
もしくは
# telinit 3

を実行すれば,ラン・レベル3に変更され,テキスト・ログインの画面が表示されます(写真4)。

写真4●ランEレベルを「3」に変更したところログイン後,ランEレベルを確認すると,5から3に変わったことが分かる。
写真4●ランEレベルを「3」に変更したところログイン後,ランEレベルを確認すると,5から3に変わったことが分かる。
[画像のクリックで拡大表示]

 変更中は,システム起動時に出ていたような文字列のメッセージが表示され,最後にEnterキーでログイン・プロンプトが表示されます*2。ラン・レベル3では,X Window Systemが起動されないため,テキスト・モードのログイン画面(テキスト・ログイン)が表示されます。X Window Systemを起動する場合は,ログイン後に次のコマンドを実行します。

$ startx

仮想コンソール

 ラン・レベル3で起動した画面は,「仮想コンソール」と呼ばれます。デフォルト(初期設定)では,[Alt]+[F1]から[F6]キー(Altキーを押しながら,それぞれのファンクション・キーを押す)によって,6つのコンソールを切り替えて使用できます。現在コンソールは,ttyコマンドで確認できます。

$ tty
/dev/tty1

 「tty1」は,[Alt]+[F1]のコンソールです。

 仮想コンソールは,inittabファイルの後半部分の設定に従って起動されます。ラン・レベルが2から5のときは,「/sbin/mingetty tty?」(最後の?は1から6)というコマンドが実行されるようになっています。アクションの項目が「respawn」になっているため,ログアウト後に直ちにログイン・プロンプトが出ます。

 X Window Systemが起動しているときに仮想コンソールに切り替える場合は,[Ctrl]+[Alt]+[F1]~[F6](CtrlキーとAltキーを押しながら,それぞれのファンクション・キーを押す)で行います。

 inittabファイル後半にある3から6の設定をコメントアウトする(行頭に「#」を入れる)と,仮想コンソールは[F1]から[F2]までになります。

 inittabファイルの修正内容は,「# init q」で反映できます。

shutdownコマンド

 システム停止を表すラン・レベルは0です。

# init 0
もしくは
# telinit 0

と実行すれば,シャットダウンできます。このほかシャットダウンを行うコマンドには,shutdownコマンドやhaltコマンド,poweroffコマンドがあります。この中で,最も一般的なコマンドは,shutdownコマンドです。

 shutdownコマンドには,多くのオプションがあります(表4)。-hオプションを指定すれば,システム停止(halt,ラン・レベル0へ変更),-rオプションは再起動(reboot,ラン・レベル6に変更)できます。何もオプションを指定しない場合は,ラン・レベル1に切り替わります。

表4●shutdownコマンドの主なオプション
オプションの後に,「now」で直ちに,「+m」でm分後,という時間の指定もできる。
[画像のクリックで拡大表示]
表4●shutdownコマンドの主なオプション

 また,停止や再起動を行う時間を指定したり,他のログイン・ユーザーに対してメッセージを送ったりもできます。

 inittabファイルの中(図2)に,shutdownコマンドを指定した部分があります。例えば,仮想コンソール上で,[Ctrl]+[Alt]+[Del]キーを入力したときは再起動を直ちに行います。電源に異常があったときは,システム停止を2分後に行い,全ユーザーのターミナル画面にメッセージを表示します。電源が回復すれば,キャンセルするようになっています。

類題

Q1 システム起動時のラン・レベルとして設定すると不具合が起こるラン・レベルを選べ。(2つ選択)

(A)0 (B)1 (C)3 (D)6

Q2 /etc/inittabファイルを編集した。再起動しないで変更を反映させたい場合,どのコマンドを実行すればよいか。

(A)init a (B)init q (C)init r (D)init s

Q3 これから10分後にシステム停止を開始する。このことを現在ログインしているユーザーに事前に通知したい。このとき使用する最も適切なコマンドはどれか。

(A)halt (B)reboot (C)shutdown (D)poweroff

【問題と類題の解答は次ページ】