fix: stabilize macOS service shutdown and release v2.6.1 - #24
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
macOS 服务经 launchd bootout 后,退出中的进程可能已成为僵尸,或原 PID 已被系统复用。原实现再次按该 PID 核对路径并发送信号,可能误报安装路径不匹配,导致卸载或更新失败。
将“发出停止请求”和“等待原进程消失”分开:bootout 后只等待,僵尸进程和已变化的身份均表示原进程已结束;对未经停止的进程仍严格验证完整可执行路径。增加退出但尚未回收、PID 被另一程序占用的回归测试,并保留拒绝停止无关程序的测试。
CI 在两个 macOS 架构上重复三轮安装/卸载/重装。Release 新增同样的原生检查门槛,全部通过后才允许发布。版本提升至 v2.6.1,包含计量、缓存、查询、时区、任务树和 macOS 的全部改进;v2.6.0 保留为预发布记录,注明已知问题。
验证:本地 Go 全套测试和 vet,macOS 测试交叉编译;原生检查由 PR CI 执行。计量和查询实现未变化,原有副本迁移及性能证据仍适用。