8

我确信我看到了一些用 Go 编写的开源服务器,它能够重新启动并保持连接打开。

我找不到它来学习这种技术。

我知道 apache.httpd 已经apachectl graceful重新启动并保持连接打开。

它在一般情况下和 Go 中是如何完成的?

我认为它必须分叉和 1 退出,2 exec(新的 go 应用程序)并通过 Fd 链接连接。

但是在 Go 中我只能找到ForkExec函数。我认为Fork是必需的。包也syscall没有很好的记录。

4

1 回答 1

7

CloseOnExec 可能会有所帮助,

FileListener、CloseOnExec 和正常重启服务器

Go 中 TCP 服务器的零停机升级

于 2013-02-13T02:40:59.760 回答