jobs コマンド

目的

現行セッションのジョブの状況を表示します。

構文

ジョブ [ -l | -n | -p ] [ JobID ...]

説明

jobs コマンドは、現行シェル環境で開始されたジョブの状況を表示します。 JobID パラメーターで特定のジョブを指定しないと、すべてのアクティブ・ジョブの状況情報が表示されます。 ジョブの終了が報告されると、シェルは現行シェル環境で認識されるプロセス ID のリストからそのジョブのプロセス ID を除去します。

/usr/bin/jobs コマンドは、それ自体のコマンド実行環境で操作しても、操作対象となるジョブがその環境内にないので機能しません。 このため、jobs コマンドは Korn シェル (POSIX シェル) の正規組み込みコマンドとして実現されています。

-p フラグを指定すると、出力は、各プロセス ID ごとに 1 行の情報で構成されます。 フラグを指定しない場合、標準出力は以下のフィールドを含む複数行となります。

表 1. 表示されるフィールド
項目 説明
job-number waitfgbgkill の各コマンドで使用するプロセス・グループ番号を示します。 これらのコマンドと共に使用する場合は、ジョブ番号の接頭部として % (パーセント記号) を使用してください。
current + (正符号) は、fg コマンドまたは bg コマンドのデフォルトとして使用されるジョブを識別します。 また、このジョブ ID は %+ (パーセント記号、正符号) または %% (2 つのパーセント記号) を使用して指定することもできます。

- (負符号) は、現在のデフォルト・ジョブが存在する場合にデフォルトとなるジョブを識別します。 また、このジョブ ID は %- (パーセント記号、負符号) を使用して指定することもできます。

その他のジョブの場合は、currentフィールドはスペース文字です。 + で識別できるのは 1 つのジョブのみで、-で識別できるのは 1 つのジョブのみです。単一の中断ジョブがある場合、それが現行ジョブになります。 延期されたジョブが 2 つ以上あると、直前のジョブも延期されます。

state 次のいずれかの値を表示します (POSIX ロケール内)。
実行中
ジョブが信号によって延期されず、終了していないことを示します。
完了しました。
ジョブが完了し、終了状況 0 を戻したことを示します。
完了 (コード)
ジョブが正常に完了し、指定したゼロ以外の終了状況コードを戻して終了したことを示します。 このコードは 10 進数で表されます。
停止
ジョブが延期されたことを示します。
停止 (SIGTSTP)
SIGTSTP 信号によってジョブが延期されたことを示します。
停止 (SIGSTOP)
SIGSTOP 信号によってジョブが延期されたことを示します。
停止 (SIGTTIN)
SIGTTIN 信号によってジョブが延期されたことを示します。
停止 (SIGTTOU)
SIGTTOU 信号によってジョブが延期されたことを示します。
command シェルに与えられた、関連付けされているコマンド。

- フラグが指定されている場合、プロセス・グループ ID を含むフィールドが、state設定します。 また、プロセス・グループ内のより多くのプロセスは、以下のもののみを使用して、別々の行に出力することができます。job-numberおよびcommandフィールド

フラグ

表 2. フラグ
項目 説明
-l (小文字の L) 各ジョブに関する詳細情報をリストします。 この情報には、ジョブ番号、現行ジョブ、プロセス・グループ ID、状態、そのジョブを開始したコマンドなどが含まれます。
-n 最終通知以後に停止あるいは終了したジョブだけを表示します。
-p 選択されたジョブのプロセス・グループ・リーダーのプロセス ID を表示します。

デフォルトでは、jobs コマンドは、停止したすべてのジョブ、バックグラウンドで実行中のすべてのジョブ、変更された状況がシェルによって報告されないすべてのジョブの状況を表示します。

終了状況

次のような終了値が戻されます。

表 3. 終了状況
項目 説明
0 正常終了。
>0 エラーが発生しました。

  1. 現行環境のジョブの状況を表示するには、次のように入力します。
    jobs -l
    画面には、次の出力のようなレポートが表示されます。
    +[4] 139  Running        CC - C foo c&
    -[3] 465  Stopped        mail morris
     [2] 687  Done(1)        foo.bar&
  2. 名前が「m」で始まるジョブのプロセス ID を表示するには、次のように入力します。
    jobs -p %m
    画面には、例 1 で報告されたジョブを使用して、次のプロセス ID が表示されます。
    465

ファイル

表 4. ファイル
項目 説明
/usr/bin/ksh Korn シェルの jobs 組み込みコマンドが入っています。
/usr/bin/jobs jobs コマンドが入っています。