こんにちは、rcS スクリプトを使用して起動するシミュレーターを使用しています。これが私のスクリプトです。
cd /tests
./test1 &
./test2 &
./test3 &
./test4
exit
私が望むのは、すべてのテストを同時に実行し、前のすべてのテストが終了したときにのみ終了コマンドが実行されることです。そして、テスト 4 が終了したときだけでなく、これは可能ですか?. ありがとうございました。
待機を使用できます:
./test1 &
./test2 &
./test3 &
./test4 &
wait
bash の man ページから:
wait [n ...] 指定された各プロセスを待機し、その終了ステータスを返します。各 n は、プロセス ID またはジョブ仕様の場合があります。ジョブ仕様が指定されている場合、そのジョブのパイプライン内のすべてのプロセスが待機されます。n が指定されていない場合、現在アクティブなすべての子プロセスが待機され、戻りステータスはゼロになります。n が存在しないプロセスまたはジョブを指定する場合、戻りステータスは 127 です。それ以外の場合、戻りステータスは、最後に待機したプロセスまたはジョブの終了ステータスです。
xargs
並列をサポートできます
だからこのように:
seq 4|xargs -i -n 1 -P 4 ./test{}
の線に沿った何か
cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit
(bashシェルを想定しています)