Linuxとコマンドラインの基礎

端末で時間のかかる ./sim.sh を実行している途中で、同じ端末でほかのコマンドを使いたくなった。Ctrl+Z を押した後に bg を実行したときの動作として、正しいものはどれか。

  1. ACtrl+Z で sim.sh は終了し、bg を実行すると同じコマンドが最初からバックグラウンドで実行し直される
  2. BCtrl+Z で sim.sh は一時停止し、bg でその続きからバックグラウンドで再開する
  3. CCtrl+Z で sim.sh はバックグラウンドに移って実行を続け、bg を実行すると一時停止する
答えと解説を見る

正解:B. Ctrl+Z で sim.sh は一時停止し、bg でその続きからバックグラウンドで再開する

Ctrl+Z を押すと、前面(フォアグラウンド)で動いているジョブに SIGTSTP が送られ、ジョブは一時停止します。bg はそのジョブに実行の再開を指示してバックグラウンドで続けさせ、fg は前面に戻します。動かしているジョブとその状態は jobs で確かめられ、最初からバックグラウンドで動かすときは「./sim.sh &」のように & を付けて起動します。ただし、端末の接続が切れるとバックグラウンドのジョブも止まることがあるので、長い処理には別の対策が必要です。

  • A. Ctrl+Z はジョブを終わらせるのではなく、一時停止させます。bg では最初からではなく続きから再開します。
  • B. 正しい。一時停止したジョブを、bg でバックグラウンドで再開させます。
  • C. Ctrl+Z と bg の働きが逆です。Ctrl+Z が一時停止、bg がバックグラウンドでの再開です。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. SSH で接続したサーバで、時間のかかる処理を「./run.sh &」で起動してから接続を切ったところ、処理も止まってしまった。接続を切った後も処理を続けさせる起動のしかたとして、最も適切なものはどれか。
  2. 上の2行をシェルで実行したとき、表示される文字として、正しいものはどれか。
  3. 上のコマンドを順に実行したときの、2つの echo の出力として、正しいものはどれか。
  4. 上のように、スクリプト s.sh を引数を付けて実行したときの出力として、正しいものはどれか。
  5. シェルスクリプトで、上の if の条件が真になる場合として、正しいものはどれか。