Miyabi
https://github.com/naoina/miyabi

Graceful shutdown/restart というのは HTTP サーバーにおいて、張られたソケットをいきなり切ってサーバーを終了するのではなく、すでに accept されているソケットに対する処理を終えてから終了または再起動することをいいます。
これによってダウンタイム無しでサーバーの再起動ができるようになります。

Golang には既に graceful shutdown/restart をするようなものが色々とありますが、Miyabi は net/http と完全に互換性があるように作っています。
なので、単に http.ListenAndServemiyabi.ListenAndServe に変えるだけで graceful shutdown/restart が出来るようになります。

miyabi.gif

注意点として、graceful restart を実現するにあたってサーバープロセスをフォークするようになっています。起動する毎に副作用によって挙動が変わるようなモノだとまともに動かないのではないかと思います。
また、先日リリースされた Go 1.3 の機能を使っているので 1.2.x 以下では動作しません。みなさん既に Go 1.3 もしくは tip を使っているはずなので問題ないでしょう。

それでは、よい Golang 日和を。