go-zerodown provides a listener which can shutdown gracefully and relaunch in another process. It mainly use in upgrading http server without completely shut down the service.
You can run the example of example/main.go
like this:
go build example/main.go
./main &
curl http://localhost:8000/upgrade
Then you should see the main
process relaunched and old one quit without service shutdown.