助け合いフォーラム

LPIC

LPIC Lv1-101(Ver5.0)
問題ID : 3484
問題を開く
下図の一時停止中のジョブをバックグラウンド動作に切り替えたい。適切なコマンドは次のうちどれか。

正解

bg 1

解説

一時停止中のジョブをバックグラウンド動作に切り替えるコマンドはbgです。

bgコマンドの書式は以下のとおりです。

bg [ジョブ番号]

ジョブ番号はjobsコマンドの実行結果の[ ]内の番号です。

したがって正解は
・bg 1
です。

その他の選択肢については以下のとおりです。
・fg 1
バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるコマンドですので、誤りです。

・jobs 1
バックグラウンドで動作しているジョブと一時停止中のジョブを表示するコマンドですので、誤りです。

・fgjob 1
・bgjob 1
存在しないコマンドです。

参考

ジョブとはコマンドやプログラムをグループ化して管理するための単位です。例えば、複数のコマンドをパイプでつないで実行したものも、1つのジョブです。

コマンド(ジョブ)はフォアグラウンドまたはバックグラウンドで実行されます。コマンドをシェル上で実行すると、通常フォアグラウンドで実行されます。コマンドをバックグラウンドで実行するには、コマンドラインの末尾に「&」を付けて実行します。

例)「ping localhost > ping.txt」コマンドをバックグラウンドで実行する場合


また、ジョブの動作(フォアグラウンドとバックグラウンド)を変更するには以下のコマンドを使用します。

・fg
バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるコマンドです。

・bg
一時停止中のジョブを、バックグラウンド動作に切り替えるコマンドです。
ジョブを一時停止するには「Ctrl+z」キーを押下します。

以下はジョブ制御の流れをまとめたものです。


なお、フォアグラウンドでコマンドを実行すると、コマンドが終了するまで別のコマンドを実行することができません。

また、現在バックグラウンドで動作している、または一時停止中のジョブはjobsコマンドで確認することができます。


左の[ ]内の数字はジョブ番号、「Running」はバックグラウンドで動作中、「Stopped」は一時停止中のジョブを表します。
なお、「+」がついてるジョブはカレントジョブといいます。カレントジョブとは、直前にバックグラウンドで実行されたジョブ、または直前に一時停止されたジョブのことです。

上に戻る

bgコマンドでジョブ番号を指定するとき

公開日 2023/09/23

bgやfgコマンドでジョブ番号を指定するときに、%を付けるすべきか?

自分の環境では%を付けても付けなくても動きましたが、%は結局付けたほうがいいのでしょうか?ネットで調べてみましたが、付けてるところと付けてないところがありました。スピードマスター問題集では%がついていました。

また、個人的にはkillコマンドは、%を使ってプロセスIDとジョブIDを区別しているので、bgやfgも%ジョブ番号とすべきかなと思っています。

2023/09/25 11:51

https://mondai.ping-t.com/g/posts/1042

%をつけることも一般的、%を省略することも一般的で好みのようです。
明示的な方が事故はゼロにできますが、現実的にはジョブIDとプロセスIDの桁が同じになることはあまりないのでしょう。
%省略時の挙動は厳密にはご自身のシェルの仕様や設定によると思われます。


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?