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ファイルの基本書式に入る項目の説明 |
表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に変わったことが分かる。 [画像のクリックで拡大表示] |
変更中は,システム起動時に出ていたような文字列のメッセージが表示され,最後に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分後,という時間の指定もできる。 [画像のクリックで拡大表示] |
また,停止や再起動を行う時間を指定したり,他のログイン・ユーザーに対してメッセージを送ったりもできます。
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 |
【問題と類題の解答は次ページ】