並行して実行しても単一スクリプトの戻りコード

並行して実行しても単一スクリプトの戻りコード

nohup複数のテーブル名をパラメータとして、Unixでコマンドを使用して並列に実行されるjarファイルがあります。

nohup java -jar batchorch.jar $tablename &

すべてのjarファイルの状態を取得するには、次の行を使用します。

oldpid=$!
wait $oldpid
echo $?

jar各ファイルは並列に実行されますが、状態を個別にどのように確認できますか?

ベストアンサー1

バックグラウンドプロセスを完了順に処理する方法がわかりません。

#!/bin/bash
  
declare -a bg_pids

ec=0

(sleep 10; exit "$ec") &
bg_pids+=($!)
((ec++))

(sleep 10; exit "$ec") &
bg_pids+=($!)
((ec++))

(sleep 10; exit "$ec") &
bg_pids+=($!)
((ec++))

for pid in "${bg_pids[@]}"; do
    echo -n "PID ${pid}: "
    wait -f "$pid"
    echo $?
done

出力:

PID 29807: 0
PID 29808: 1
PID 29810: 2

おすすめ記事