LinuCレベル1 101試験の例題と解説
1.01.4プロセスの生成、監視、終了
今回は、101試験の試験範囲から、「1.01.4 プロセスの生成、監視、終了」についての例題を解いてみます。フォアグラウンドやバックグラウンドについて取り上げます。実践でも使えるよう確認しておきましょう。
例題
現在実行中のジョブを確認したところ以下のように表示された。
表示されたジョブの中から、バックグラウンドで動いているジョブをフォアグラウンドで実行する方法を選択してください。
====================================================
[1]- 停止 vi test1
[2] 実行中 tail -f /var/log/messages &
[3]+ 停止 vi test3
====================================================
- bg 2
- jobs
- fg 2
- tail -f /var/log/messages
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「3. fg 2」です。
「フォアグラウンド」は、キーボードからの入力など端末からの入力を受け付ける状態のことを指します。フォアグラウンドでジョブが実行されていると、そのジョブが終了するまでシェル上で他の作業はできません。
反対に「バックグラウンド」は端末からの入力は受け付けず、裏で動作している状態のことを指します。そのため、バックグラウンドでジョブが実行されていると。ジョブの終了を待たずにシェル上で他の作業をすることができます。
バックグラウンドでコマンドを実行するには、最後に「&」を追加します。現在実行中のジョブの中でバックグラウンドで動いているジョブは、ジョブ番号[2]のジョブです。
また、バックグラウンドで動いているジョブをフォアグラウンドで実行するには、ジョブ番号を引数にしてfgコマンドを利用します。
このため「3. fg 2」が正解となります。
その他の選択肢の解説は以下の通りです。
[1. bg 2]
bgコマンドは現在停止中のジョブのモードをバックグラウンドに変更するコマンドです。
fgコマンド同様、ジョブ番号を引数にして利用します。
今回はバックグラウンドからフォアグラウンドにモードを変更したいので不正解となります。
[2. jobs]
jobsコマンドは現在実行中のジョブを表示するためのコマンドです。
jobsコマンドを実行することで、問題文にあるようなジョブの表示を行うことができます。
[4. tail -f /var/log/messages]
現在実行中のコマンドと同じコマンドを実行した場合、新たにジョブが作成され実行されます。
今回はバックグラウンドで実行しているジョブをフォアグラウンドで実行したいため、別のジョブが新たに作成されてしまう「4. tail -f /var/log/messages」の選択肢は不正解となります。
バックグラウンドとフォアグラウンドの使い分けができると、複数の作業を並行して進めることができます。しっかり理解し、使えるようにしておきましょう。