GNU/Linux >> Linux の 問題 >  >> Linux

Linux のジョブ制御コマンドを理解する – bg、fg、および CTRL+Z

Linux での仕事とは

ジョブは、シェルが管理するプロセスです。各ジョブには、連続したジョブ ID が割り当てられます。ジョブはプロセスであるため、各ジョブには関連付けられた PID があります。ジョブ ステータスには次の 3 種類があります。
1. 前景 注:ターミナル ウィンドウにコマンドを入力すると、コマンドは完了するまでそのターミナル ウィンドウを占有します。これはフォアグラウンド ジョブです。
2. 背景 :コマンド ラインの末尾にアンパサンド (&) 記号を入力すると、ターミナル ウィンドウを占有せずにコマンドが実行されます。 Return キーを押すと、すぐにシェル プロンプトが表示されます。これはバックグラウンド ジョブの例です。
3. 停止 :フォアグラウンド ジョブの場合は Control + Z を押すか、バックグラウンド ジョブの場合は停止コマンドを入力すると、ジョブが停止します。このジョブは停止ジョブと呼ばれます。

注意 :Bourne シェルを除き、他のシェルはジョブ制御をサポートしています。

ジョブ制御コマンド

ジョブ制御コマンドを使用すると、ジョブをフォアグラウンドまたはバックグラウンドに配置したり、ジョブを開始または停止したりできます。この表では、ジョブ制御コマンドについて説明します。

オプション 説明
仕事 すべてのジョブを一覧表示
バッグ %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 &
注意 :停止したジョブをフォアグラウンドまたはバックグラウンドに配置すると、ジョブが再開されます。


Linux
  1. Linuxでのシェルコマンドのさまざまな分類とその使用法を理解する

  2. Linuxでのシャットダウン、電源オフ、停止、および再起動コマンドについて理解する

  3. Linuxコマンド:jobs、bg、およびfg

  1. Linuxコマンド-概要と例

  2. fgおよびbgコマンドを使用してLinuxバックグラウンドジョブを管理する方法

  3. バックグラウンドで UNIX / Linux コマンド (およびシェル スクリプト) を実行する 5 つの方法

  1. Linuxのwatchコマンドでコマンドとタスクを監視する

  2. Linuxのchgrpおよびnewgrpコマンドの概要

  3. iノードとLinuxファイルシステム