ジョブ関連のビルトインコマンド
jobs,fg,bg,disownなど、ジョブ関連のシェルビルトインコマンドについてざっくりメモ。
プロセスとジョブの違いは、Linuxカーネルが処理する単位がプロセスで、ユーザにとって
判りやすくした処理の単位がジョブ、と捉えておくとよい。
いずれのコマンドもジョブの指定に「% n」(nはジョブ番号)とする。
実行されたジョブはジョブテーブルと呼ばれるデータベースに保存され、jobsコマンドで
ジョブテーブルから情報を取り出すことができる。オプションなしで実行すると現在実行中
のジョブが表示される。
jbosコマンド オプション
-l PIDを追加してジョブリストを出力
-p PIDのみを出力
-n ステータスが変更されたジョブ情報を出力
-r 実行中のジョブのみ出力
-s 停止中のジョブのみ出力
fgコマンドはバックグラウンドで実行中/停止中のジョブをフォアグラウンドで再開する。
bgコマンドは停止中のジョブをバックグラウンドジョブに変更する。ジョブを指定しなかった場合はカレントジョブが対象となる。
killコマンドでジョブを停止
killコマンドはPID以外にジョブ番号を指定することもできる。
例えば特定のジョブを強制終了させるには、”$ kill -KILL %1 “などとする。
disownコマンドはジョブテーブルからカレントジョブを削除する。
ただしこの場合、ジョブテーブルから削除されただけでプロセスは終了していないためPIDは残る。
disownコマンド オプション
a すべてのジョブを対象とする
-r 実行中のジョブのみ対象とする