2013-02-12 2 views
6

Уверен, что я увидел сервер с открытым исходным кодом, написанный на Go, который смог перезапустить и открыть соединения.Изящный перезапуск для открытия соединений

Я не могу найти его, чтобы узнать эту технику.

Я знаю, что apache.httpd имеет apachectl graceful, который перезапускает и сохраняет соединения открытыми.

Как это делается в целом и в Go?

Я думал, что он должен иметь вилку и 1 выход, 2 exec (новое приложение) и ссылки на Fd.

Но в Go я могу найти только ForkExec функция. Я думаю, Fork не требуется. Также syscall пакет не очень хорошо документирован.

+0

Не грациозные перезагружается просто раскрутить новый сервер для обработки всех новых входящих соединений, но сохранить старый сервер жив, пока он не закончит, обслуживающими существующие соединения? Он не пытается передать существующие подключения к новому серверу. –

+0

Если вы выполняете программу, то новая программа может совместно использовать открытые файлы со старым. – Artem

ответ

5
+0

Первый. ссылка имеет 404 ссылку на github. Но вторая ссылка имеет решение для прослушивателя TCP, чтобы выжить при перезагрузке. Я считаю, что подобная техника может применяться для открытых сокетов TCP. Благодаря! – Artem

Смежные вопросы