Linux での仕事とは
ジョブは、シェルが管理するプロセスです。各ジョブには、連続したジョブ ID が割り当てられます。ジョブはプロセスであるため、各ジョブには関連付けられた PID があります。ジョブ ステータスには次の 3 種類があります。
1. 前景 注:ターミナル ウィンドウにコマンドを入力すると、コマンドは完了するまでそのターミナル ウィンドウを占有します。これはフォアグラウンド ジョブです。
2. 背景 :コマンド ラインの末尾にアンパサンド (&) 記号を入力すると、ターミナル ウィンドウを占有せずにコマンドが実行されます。 Return キーを押すと、すぐにシェル プロンプトが表示されます。これはバックグラウンド ジョブの例です。
3. 停止 :フォアグラウンド ジョブの場合は Control + Z を押すか、バックグラウンド ジョブの場合は停止コマンドを入力すると、ジョブが停止します。このジョブは停止ジョブと呼ばれます。
ジョブ制御コマンド
ジョブ制御コマンドを使用すると、ジョブをフォアグラウンドまたはバックグラウンドに配置したり、ジョブを開始または停止したりできます。この表では、ジョブ制御コマンドについて説明します。
オプション | 説明 |
---|---|
仕事 | すべてのジョブを一覧表示 |
バッグ %n | 現在のジョブまたは指定されたジョブをバックグラウンドに配置します。n はジョブ ID です |
fg %n | 現在のジョブまたは指定されたジョブを前面に表示します。n はジョブ ID です |
Control-Z | フォアグラウンド ジョブを停止し、停止したジョブとしてバックグラウンドに配置します |
バックグラウンドでのジョブの実行
バックグラウンドでジョブを実行するには、実行するコマンドを入力し、その後にアンパサンド (&) を入力する必要があります コマンド ラインの末尾にある記号。たとえば、sleep コマンドをバックグラウンドで実行します。
$ sleep 100 & [1] 1302 $
シェルは、コマンドに割り当てたジョブ ID と関連する PID を角かっこで囲んで返します。ジョブ ID を使用すると、ジョブ制御コマンドを使用してジョブを管理できますが、カーネルは PID を使用してジョブを管理します。
バックグラウンド ジョブが完了して Return キーを押すと、シェルはジョブが完了したことを示すメッセージを表示します。
[1] + Done sleep 100 & $
バックグラウンド ジョブの管理
ジョブを使用できます バックグラウンドで現在実行中または中断されているジョブを一覧表示するコマンド。
$ jobs [1]+ Running sleep 100 &
fg コマンドを使用して、バックグラウンド ジョブをフォアグラウンドに移動できます。
$ fg % 1 sleep 100注意 :フォアグラウンド ジョブは、ジョブが完了、一時停止、または停止されてバックグラウンドに配置されるまで、シェルを占有します。
「Control+Z」を使用できます キーと BG ジョブをバックグラウンドに戻すコマンド。 Control+Z キーはジョブを一時停止し、停止したジョブとしてバックグラウンドに配置します。 bg コマンドは、ジョブをバックグラウンドで実行します。例:
1. CTRL+Z の使用
$ sleep 100 ^Z [1]+ Stopped sleep 100
$ jobs [1]+ Stopped sleep 100
<強い>2. bg の使用
$ bg % 1 [1]+ sleep 100 &
$ jobs [1]+ Running sleep 100 &注意 :停止したジョブをフォアグラウンドまたはバックグラウンドに配置すると、ジョブが再開されます。