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