Sono sicuro di aver visto alcuni server open source scritti in Go che è stato in grado di riavviarsi e mantenere le connessioni aperte.Grazioso riavvio per mantenere le connessioni aperte
Non riesco a trovarlo per imparare quella tecnica.
So che apache.httpd ha apachectl graceful
che si riavvia e mantiene le connessioni aperte.
Come è fatto in generale e in Go?
Ho pensato che deve forchetta e 1 uscita, 2 exec (new go app) e connessioni link da Fd.
Ma in Go, è possibile trovare solo la funzione ForkExec
. Penso che sia richiesto Fork
. Anche il pacchetto syscall
non è molto ben documentato.
Non si riavvia aggraziate semplicemente spin up del nuovo server per gestire tutte le nuove connessioni in entrata, ma mantenere vivo il vecchio server finché non è finito il servizio del connessioni esistenti? Non tenta di consegnare le connessioni esistenti alla nuova richiesta mid del server. –
Se si esegue il programma, il nuovo programma potrebbe condividere file aperti con uno vecchio. – Artem