在Go中重新启动优美的进程 有时在不中断现有连接的情况下更新正在运行的代码和/或网络服务的配置非常有用。 通常,这是通过启动新流程,以某种方式将客户转移到该流程然后退出旧流程来实现的。 有。 它们在权衡取舍以及为用户提供多少控制权方面差异很大。 该库具有以下目标: 成功升级后,没有旧代码可以继续运行 新流程具有执行初始化的宽限期 初始化期间崩溃是可以的 只能并行运行一个升级 tableflip可在Linux和macOS上使用。 使用图书馆 upg , _ := tableflip . New (tableflip. Options {}) defer upg . Stop () go f