2017-03-08 8 views
2

終了コードに関係なく、すべてのジョブが失敗した場合、すべてのジョブが停止するように-halt条件(または複数の-halt条件?)を設定できますか?GNU並列:成功時の停止

私はイベントを監視したいのですが(ロードバランシングサービスでは、別に起動したばかりです)、ログを見ることでイベントが成功したか失敗したかを特定できますが、複数のサーバーのログを一度に表示する必要があります。完璧!パラレル!しかし、私は余分な要件があります:私は成功または失敗をログ結果に基づいて返すしたい。

だから私は、それらのいずれかがイベント(すなわち"-halt now")を検出した場合、並列ジョブを停止したいが、検出がゼロか非ゼロを返すかどうかわからない。どちらも"-halt now,success=1""-halt,fail=1"が正しくありませんので、私はソースを介して見ていた)

"-halt,any=1"ような何かをする方法を把握する必要があります)、その情報アウトと、よく、私のperlのカンフーはこれを取り組むには不十分です(exitstatusがソースのさまざまな場所で使用されているように見えますが、これが実現可能かどうかはわかりません)

,success=1,fail=1はどちらも完全に機能しますが(対応する終了ステータスが与えられています)、並列実行する前に成功するか失敗するかわかりません。

答えて

1

(人間として)ログを表示している場合、Ctrl-Cを使用しないのはなぜですか?

あなたは、単にすべてのジョブが終了したときに最初に殺されたい場合は、成功になるためにそれを強制するために、あなたのコマンドにtrueを追加します。

parallel -Sserver{1..10} --halt now,success=1 dosomething {}\;true ::: 1..100 
関連する問題