# ワークフロー取り消しのリファレンス

ワークフローの実行をキャンセルするためにGitHubが実行する手順に関する情報を参照してください。

ワークフローの実行を取り消すとき、ワークフローの実行に関連するリソースを使用する他のソフトウェアを実行している可能性があります。 ワークフロー実行に関連するリソースを解放するために、ワークフロー実行を取り消すために実行 GitHub 手順を理解するのに役立つ場合があります。

1. ワークフロー実行をキャンセルするために、サーバーは現在実行中のすべてのジョブに対して `if` 条件を再評価します。 条件が `true` に評価された場合、ジョブはキャンセルされません。 たとえば、`if: always()` は true に評価され、ジョブの実行は継続されます。 条件がない場合は条件 `if: success()` と同じなので、前のステップが正常に終了した場合にのみ実行されます。
2. キャンセルする必要があるジョブについては、サーバーは、キャンセルする必要があるジョブを持つすべてのランナー マシンにキャンセル メッセージを送信します。
3. 実行を継続するジョブの場合、サーバーは未完了のステップの `if` 条件を再評価します。 条件が `true` に評価された場合、ステップは引き続き実行されます。
   `cancelled` 式を使用して、`cancelled()` のステータス チェックを適用できます。 詳しくは、「[ワークフロー内とアクション内で式を評価する](/ja/enterprise-server@3.22/actions/reference/workflows-and-actions/expressions#cancelled)」をご覧ください。
4. 取り消す必要があるステップについて、ランナー マシンはステップのエントリ プロセス (JavaScript アクションの場合は `SIGINT/Ctrl-C`、コンテナー アクションの場合は `node`、ステップで `docker` を使っている場合は `bash/cmd/pwd`) に `run` を送信します。 プロセスが 7500 ms 以内に終了しない場合、ランナーは `SIGTERM/Ctrl-Break` をプロセスに送信し、プロセスが終了するまで2500 ms 待ちます。 プロセスがそれでも実行中のままなら、ランナーはプロセスツリーを強制終了します。
5. 5 分間の取り消しタイムアウト期間が経過すると、サーバーは、実行中の取り消しのマークが付けられたすべてのジョブとステップを強制的に終了します。