Edited at

GNU Parallel のエラー処理

More than 1 year has passed since last update.

シェルスクリプトで並列処理をしたいとき、便利なのがxargs -P ですがエラー時に終了させることができません。

(できるようでしたら教えてください)

GNU Parallel を使うと簡単にエラー時の制御ができます。

例)3並列で long_job を実行。エラー時は 即座に終了

$ cat list.txt | parallel --halt now,fail=1 --jobs 3 ./long_job {}

なお、実行中の他の処理の終了を待って終了するには、now の代わりに soon を指定します。

例)3並列で long_job を実行。エラー時は 他のプロセスの終了を待って終了

$ cat list.txt | parallel --halt soon,fail=1 --jobs 3 ./long_job {}


参考