2013-02-12 30 views
6

Tôi chắc chắn rằng tôi đã thấy một số máy chủ nguồn mở được viết bằng Go đã có thể khởi động lại và giữ các kết nối mở.Bắt đầu lại duyên dáng để giữ các kết nối mở

Tôi không thể tìm thấy nó để tìm hiểu kỹ thuật đó.

Tôi biết apache.httpd có apachectl graceful khởi động lại và giữ kết nối mở.

Làm thế nào để nó được thực hiện nói chung và trong Go?

Tôi nghĩ rằng nó phải ngã ba và 1 lối ra, 2 exec (ứng dụng đi mới) và kết nối liên kết bằng Fd.

Nhưng trong Go, tôi chỉ có thể tìm thấy chức năng ForkExec. Tôi nghĩ rằng Fork là bắt buộc. Ngoài ra syscall gói không phải là rất tốt tài liệu.

+0

Đừng khởi động lại duyên dáng đơn giản quay lên máy chủ mới để xử lý tất cả các kết nối mới đến, nhưng giữ cho máy chủ cũ còn sống cho đến khi nó hoàn thành phục vụ các kết nối hiện có? Nó không cố gắng kết nối các kết nối hiện có với yêu cầu giữa máy chủ mới. –

+0

Nếu bạn thực hiện chương trình thì chương trình mới có thể chia sẻ các tệp đang mở với tệp cũ. – Artem

Trả lời

Các vấn đề liên quan