> From the kernel point of view, there is a only one socket with a unique listen queue. This socket is associated to several file descriptors: one in systemd and one in the current process. The socket stays alive as long as there is at least one file descriptor. An incoming connection is put by the kernel in the listen queue and can be dequeued from any file descriptor with the accept() syscall. Therefore, this approach actually achieves zero-downtime deployment: no incoming connection is rejected. [0]
systemd can be sufficient for a zero-downtime deployment.
systemd can be sufficient for a zero-downtime deployment.
[0] https://vincent.bernat.ch/en/blog/2018-systemd-golang-socket...