通常、ファブリックは、run()コールがゼロ以外の終了コードを返すとすぐに終了します。ただし、一部の呼び出しでは、これが必要です。たとえば、ファイルを圧縮できない場合、PNGOutはエラーコード2を返します。ファブリックを使用してリモートシェルでrun()コールを使用するときにエラーコードをキャッチできますか?
現在、私はシェルロジック(do_something_that_fails || true
またはdo_something_that_fails || do_something_else
)を使用してこの制限を回避することができますが、私のロジックを平凡なPythonで保つことができます(Fabricの約束通りです)。
エラーコードをチェックし、ファブリックをパニックにして死にかけるのではなく、それに反応する方法はありますか?私はまだ他の呼び出しのためのデフォルトの動作が欲しいので、環境を変更してその動作を変更するのは良い選択肢のようには見えません(とにかく、それを使うだけで、
を試してみてください:[この質問は関連しています](http://stackoverflow.com/questions/3876936/how-to-continue-the-task-when-私が言ったように、私はエラーに気付き、無視しないでください。 –
現在受け入れられている回答の日付が入ります。 2013年7月以降、エラーが発生したときに発生させるべき例外を指定できる環境変数があります(デフォルトは 'SystemExit'です。これはExceptionの子孫ではありません。これが原因でプログラムがクラッシュする)。私の答えを見てください:http://stackoverflow.com/a/25293275/901641 – ArtOfWarfare
//私はInvokeがこれをどのように処理するのか不思議です。 –