Loose-Info.com
Last Update 2022/10/09
TOP - 各種テスト - bash - ジョブコントロール

ジョブコントロール



サンプルスクリプトのジョブコントロールを伴う実行


sample1.sh
#!/bin/bash for a in $@ do date echo "--- $a ---" sleep 3 done date

実行結果
$ ./sample1.sh a b c Sun 9 Oct 10:16:51 JST 2022 --- a --- ^Z <--- ジョブ実行中に[Control-z]で停止 [1]+ Stopped ./sample1.sh a b c $ jobs <--- 現在のジョブ状況を確認 [1]+ Stopped ./sample1.sh a b c $ fg %1 <--- ジョブ番号1をフォアグラウンドで再開 ./sample1.sh a b c Sun 9 Oct 10:17:19 JST 2022 --- b --- Sun 9 Oct 10:17:22 JST 2022 --- c --- Sun 9 Oct 10:17:25 JST 2022 $ jobs <--- 現在のジョブ状況を確認・ジョブ無し $ ./sample1.sh a b c <--- 一つ目のジョブ実行 Sun 9 Oct 10:18:17 JST 2022 --- a --- ^Z <--- 一つ目のジョブ停止 [1]+ Stopped ./sample1.sh a b c $ ./sample1.sh 1 2 3 <--- 二つ目のジョブ実行 Sun 9 Oct 10:18:26 JST 2022 --- 1 --- ^Z <--- 二つ目のジョブ停止 [2]+ Stopped ./sample1.sh 1 2 3 $ jobs <--- 現在のジョブ状況を確認 [1]- Stopped ./sample1.sh a b c [2]+ Stopped ./sample1.sh 1 2 3 $ fg %2 <--- ジョブ番号2をフォアグラウンドで再開 ./sample1.sh 1 2 3 Sun 9 Oct 10:18:54 JST 2022 --- 2 --- ^Z <--- ジョブ番号2停止 [2]+ Stopped ./sample1.sh 1 2 3 $ jobs [1]- Stopped ./sample1.sh a b c [2]+ Stopped ./sample1.sh 1 2 3 $ bg %1 <--- ジョブ番号1をバックグラウンドで再開 [1]- ./sample1.sh a b c & $ Sun 9 Oct 10:19:38 JST 2022 --- b --- Sun 9 Oct 10:19:41 JST 2022 --- c --- Sun 9 Oct 10:19:44 JST 2022 [1]- Done ./sample1.sh a b c <--- ジョブ番号1終了 $ jobs <--- 現在のジョブ状況を確認 [2]+ Stopped ./sample1.sh 1 2 3 $ fg %2 <--- ジョブ番号2をフォアグラウンドで再開 ./sample1.sh 1 2 3 Sun 9 Oct 10:20:04 JST 2022 --- 3 --- Sun 9 Oct 10:20:07 JST 2022 $ ./sample1.sh a b c <--- ジョブを新規に実行 Sun 9 Oct 11:00:40 JST 2022 --- a --- ^Z <--- ジョブ停止 [1]+ Stopped ./sample1.sh a b c $ bg %1 <--- ジョブ番号1をバックグラウンドで再開 [1]+ ./sample1.sh a b c & $ Sun 9 Oct 11:00:51 JST 2022 --- b --- %1 <--- ジョブ番号1をフォアグラウンドに移行 ./sample1.sh a b c Sun 9 Oct 11:00:54 JST 2022 --- c --- ^Z <--- フォアグラウンドに移行したジョブを停止 [1]+ Stopped ./sample1.sh a b c $ fg <--- ジョブをフォアグラウンドで再開 ./sample1.sh a b c Sun 9 Oct 11:01:03 JST 2022 $

実行環境

GNU bash, version 5.1.16
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。