dosya CLIの終了コードを処理する

dosya CLIの終了コードでスクリプトを分岐し、標準エラー出力を保持して、使い方、認証、ネットワーク、権限、メンテナンスの失敗を区別します。

最終確認日

スクリーンショットは英語版の画面です。

dosya CLIは自動化用に安定したプロセスステータスを使います。0は成功、1は一般的な失敗、2は使い方の誤り、3は認証、4はネットワーク、5は権限拒否、75はメンテナンスを表します。シグナルによる終了はSIGINTが130、SIGTERMが143のままです。

4つの図で、ストリームとステータスの取得、--jsonで出力された終了コード1の一括処理結果の解析、使い方や認証の失敗の分類、メンテナンス時の再スケジュールを示しています。
図は、ストリームとステータスの取得、一部の失敗により終了コード1で終了した`--json`のコマンド固有の一括処理JSONの解析、使い方や認証の失敗の分類、メンテナンス時の再スケジュールを示しています。スクリーンショットを原寸で開く。

始める前に

  • 標準出力、標準エラー出力、$?を別々に取得してください。通常のテキストとJSONは標準出力に、診断情報、警告、デバッグ出力、進捗は標準エラー出力に出力されます。
  • ジョブで再試行できる分類を決めてください。認証と権限の失敗は修正が必要です。短い間隔で繰り返し再試行しないでください。
  • コードがsurface_disabledの503レスポンスは、メンテナンスの終了コード75に直接対応します。

手順

  1. 標準出力を別のプロセスに直接パイプせずにコマンドを実行し、まず両方のストリームと元の終了ステータスを保持してください。
  2. 0はコマンドの成功として扱ってください。一括コマンドを--json付きで実行した場合、1件以上失敗すると通常はコマンド固有のJSONを出力して終了コード1で終了します。その結果を解析し、成功件数と失敗の詳細を保持してください。
  3. 2は無効なコマンド構文または引数、3は認証情報の欠落または拒否、5は認証済みの実行者に権限がない場合に対応させてください。
  4. 4は転送または接続の失敗に対応させてください。コマンド自体を安全に繰り返せる場合に限り、回数を制限して再試行してください。
  5. 75はsurface_disabledを含む一時的なメンテナンスに対応させてください。恒久的な設定エラーとして扱わず、運用担当者が承認した待機時間の後に再スケジュールしてください。
  6. 標準エラー出力と数値のステータスを記録してください。130と143はキャンセルとして保持し、スケジューラーが中断されたジョブをアプリケーションの失敗と誤認しないようにしてください。
終了コードの処理に使うインストールとコマンドのリファレンスを掲載したdosya CLIの概要。
CLIの概要には、「dosya CLIの終了コードを処理する」で使うインストールとコマンドのリファレンスがあります。スクリーンショットを原寸で開く。

確認できる結果

自動処理は元の数値ステータスで分岐し、標準エラー出力の診断情報を保持します。エラーメッセージを解析して、使い方、認証、ネットワーク、権限拒否、メンテナンスのどれによる失敗かを推測することはありません。

トラブルシューティング

パイプラインがパーサーのステータスを報告する場合 jqを実行する前にdosyaのプロセスステータスを保存するか、シェルのパイプラインステータスの処理を明示的に有効にしてください。

終了コード1の詳細が少ない場合 標準エラー出力を確認してください。1は、より限定されたステータスに対応しない失敗の一般的な分類です。

再試行するとデータが二重に変更される可能性がある場合 まずリモートの状態を確認してください。終了コードは失敗の分類を示しますが、接続が切れる前にサーバーが変更を確定したかどうかは示しません。

関連ガイド

この記事は役に立ちましたか?

評価の結果を読み込んでいます…

投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。

質問と回答

このガイドの手順について質問できます。質問は確認後に公開されます。

公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。

質問を読み込んでいます…

    dosyaアカウントにサインインすると、質問を投稿できます。

    やり直す前に結果を確認

    操作をもう一度確認する必要があるときは、次の共通の確認事項をご利用ください。