热重启 Golang 服务器

服务端代码经常需要升级,对于线上系统的升级常用的做法是,通过前端的负载均衡(如nginx)来保证升级时至少有一个服务可用,依次(灰度)升级。 而另一种更方便的方法是在应用上做热重启,直接升级应用而不停服务。 原理 热重启的原理非常简单,但是涉及到一些系统调用以及父子进程之间文件句柄的传...