desktop-lifecycle.md 1.6 KB

macOS App 与后台服务

操作 结果
关闭窗口 隐藏窗口,App 与后台继续运行
⌘Q / 退出夭夭(后台继续运行) 一次退出 App,独立 Web、本机托管 Runner 与虚拟机继续按原生命周期运行
停止后台服务并退出 停止本应用管理的后台服务、任务与虚拟机,再退出 App;保留工作文件和配置

重新打开 App 会核对已有后台的身份和健康状态;后台运行时连接现有实例,已停止时重新启动。退出期间不切回启动页,也不接受重复打开/退出请求。应用菜单可查看“后台服务运行中”。只有确认服务停止才显示“后台服务已停止”;断开连接单独表示为“App 已断开后台连接”。

普通退出仍会停止由 App 自身启动的高级外部 Runner;“本地虚拟机”使用的托管 Runner 在独立 Web 内运行,不受普通退出影响。服务停止只针对已核对数据目录、端口、进程和 LaunchAgent 的本机实例,不停止用户另外启动的 Hermes、Docker 或其他服务。

停止操作使用与升级相同的互斥保护,更新进行中会拒绝停止。通过 launchctl bootout 卸载服务,避免 KeepAlive 重启;启动配置保留,下次打开 App 可重新启动。后台停止期间拒绝新应用请求,并在清理虚拟机后关闭 HTTP 长连接。

验收应分别验证原生 ⌘Q/菜单退出、窗口关闭、连续重新打开、真实后台停止及重新启动。仅调用测试框架的关闭方法不能证明一次原生退出完成。