#pragma once // 业务进程与 supervisor 之间的退出码协议。 // // launcher(src/launcher)以独立进程拉起业务进程(eui_app.exe), // 通过进程退出码判断该如何处理,从而把“崩溃后重启”从故障进程内迁移到 // 外部守护进程(见 doc/Crashpad与WER迁移清单.md 第 6 节)。 // // 约定: // - EUI_EXIT_OK 正常退出 / 用户主动退出,supervisor 不再拉起。 // - EUI_EXIT_RESTART 业务进程请求一次“有意重启”(升级、用户主动重启), // 不计入崩溃预算,supervisor 立即重新拉起。 // - 其它任意非 0 值 视为异常/崩溃退出(含被 Crashpad handler 终止), // 计入崩溃预算,supervisor 限频重启并在连续崩溃时熔断。 // // 业务进程只有在“被 supervisor 守护”时(环境变量 EUI_SUPERVISED=1 存在) // 才应返回 EUI_EXIT_RESTART;直接启动时仍走自身的重启逻辑以保持兼容。 #define EUI_EXIT_OK 0 #define EUI_EXIT_RESTART 90 // supervisor 自身的退出码。 #define EUI_SUP_EXIT_OK 0 #define EUI_SUP_EXIT_CIRCUIT_BROKEN 87 // 连续崩溃触发熔断,已停止自动重启。 #define EUI_SUP_EXIT_LAUNCH_FAILED 88 // 无法拉起业务进程。 // supervisor 启动业务进程时注入的环境变量名与值。 #define EUI_SUPERVISED_ENV L"EUI_SUPERVISED" #define EUI_SUPERVISED_VALUE L"1"