由Upstart或systemd启动的服务,我想要热更新它。更新后,新的服务进程正在运行,然后杀死由upstart或systemd启动的旧服务进程。最后,新进程可以像旧进程一样由启动进程或systemd进行监控。
发布于 2017-11-15 08:23:22
你没说你的服务是做什么的。我是在回答最简单的情况,一个具有短期连接的网络服务,比如HTTP服务器。
systemctl restart <myservice>替换磁盘上的二进制文件
在实践中,你的服务中经常会有一些状态,你需要在关机时保持,并在启动时加载。
服务关闭可能需要等待一段时间,直到它的所有请求完成。
对于具有许多长期TCP连接(如XMPP服务器)的更困难的情况,这不再是systemd的问题,您必须协调新旧进程以将套接字从一个进程传递到另一个进程。我用Online upgrades in Go来描述它,但它有更多的工作要做。
https://stackoverflow.com/questions/45760543
复制相似问题