更新去年写了一个Agent的程序,用于收集生产服务器的一些数据,以及对应的一些自动化操作等, 写完之后经常要修修改改加一些新功能, 产线服务器数量就很多, 导致了每次更新都是个大动作,目前的做法是通过puppet管理,新版本就往puppet上丢,等他自动重启即可,由此联想到了老东家游戏服务的热加载,所以看了一下golang的热加载实现。基本流程第一种方式, 文件主体更新golang服务进程运行时监听USR2信号进程收到USR2信号后, 下载新版本的客户端到本地fork子进程(启动新版本服