概要
現在のシェルが把握しているジョブを一覧表示するシェル組み込みです。Ctrl+Zや&と組み合わせると、対話シェル上で処理の前後関係を切り替えられます。
基本構文
jobs [オプション] [ジョブ指定]詳細解説
jobsは、シェルのジョブ制御機能を扱うための組み込みコマンドです。ジョブとは、現在のシェルから起動され、シェルが前面、背面、停止状態として追跡している処理単位を指します。
jobsは外部コマンドではなく、現在のシェル自身が管理しているジョブへ作用する点が重要です。そのため、別シェルや非対話シェルでは期待どおりに使えないことがあります。
実務では、対話的な確認作業の途中で一時停止して別作業を行う、長い処理を裏へ回して端末を取り戻す、といった場面で役立ちます。ただし、永続的なサービス運用の代わりになるものではありません。
このコマンドを使う場面
現在のシェルが管理している背景ジョブや停止中ジョブの状態を確認したい時に使います。
まず安全に試す方法
1. sleep 300 &
2. sleep 400 &
3. jobs -l
4. jobs -r
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
sleepを実行し、停止、再開、一覧確認の流れを体験します。
資格試験との関連
-
LinuC レベル1
範囲: 1.03.1 コマンドラインの操作根拠: officialLinuCレベル1では、ジョブ制御やシェル上の対話操作がコマンドライン運用の基礎として重視されます。
-
LPIC-1
範囲: 103.1 Work on the command line根拠: officialLPIC-1では、シェル上での対話操作、ジョブ制御、実行環境の扱いが重要です。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorial試験横断で、jobsはLinux運用の基礎体力を支える重要なコマンドです。
実行結果サンプル
-
sleep 300 & sleep 400 & jobs -l[1]- 12345 Running sleep 300 & [2]+ 12346 Running sleep 400 &
戻り値コード
- 0 正常終了。ジョブ操作または一覧表示に成功しました。
- >0 ジョブ制御無効、対象ジョブ不存在などで処理できませんでした。
使用例
jobsjobs -l
よくあるエラー
-
jobsを実行しても何も出ない 原因: 現在のシェルが管理するジョブが存在しません。対処: バックグラウンド起動や停止操作を行った後で再確認します。
-
別端末で起動した処理が出てこない 原因: jobsは現在のシェルが管理するジョブだけを表示します。対処: システム全体の確認にはpsやpgrepを使います。
導入・互換性情報
ジョブ制御が有効な対話シェルでだけ意味を持ちます。非対話シェルやジョブ制御無効環境では期待どおりに使えません。
注意点 / セキュリティリスク
危険度は低いですが、ジョブ指定を取り違えると意図しない処理を前面や背面へ動かします。まずjobsで状態を確認してから操作すると安全です。
FAQ
-
Q. psとの違いは何ですか。 A. psはシステム全体のプロセスを表示し、jobsは現在のシェルが管理するジョブだけを表示します。
-
Q. 別端末で起動した処理も扱えますか。 A. 通常は扱えません。現在のシェルが管理しているジョブだけが対象です。
関連用語
参照リンク
- カテゴリー: Process And Jobs
- シェル依存: Posix Sh
- レベル: Beginner
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎