Процесс передаёт listening socket дочернему процессу через file descriptor inheritance (ExtraFiles в exec.Cmd). Дочерний процесс начинает принимать новые соединения, а родительский дообслуживает старые и завершается. В Go можно получить listener из fd: net.FileListener(os.NewFile(fd, "")). Библиотеки: tableflip, grace. Это позволяет обновить бинарник без потери ни одного запроса — zero-downtime deploy.
Как работает graceful restart с socket inheritance?
Senior
77 просмотровAFK Offer AI
Что такое pessimistic lock для товара?