Last Update 2022/10/09
ジョブコントロール
サンプルスクリプトのジョブコントロールを伴う実行
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
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。