This repo demonstrates the use of go 1.8 server.shutdown and reuseport to gracefully restart a go app.
https://github.com/kavu/go_reuseport
https://tylerchr.blog/golang-18-whats-coming/
https://talks.golang.org/2017/state-of-go.slide#52
http://freeprogrammersblog.vhex.net/post/linux-39-introdued-new-way-of-writing-socket-servers/2