diff options
| author | Chris Lu <chris.lu@gmail.com> | 2014-05-13 15:04:04 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2014-05-13 15:04:04 -0700 |
| commit | dac95464b86bf7ef4da7beec6a13667de8933367 (patch) | |
| tree | f85dc20477818b405c94a6b4170ce1f841d27a20 /go/weed/server.go | |
| parent | 029923329da27791566e6c5b13a013b015dda252 (diff) | |
| download | seaweedfs-dac95464b86bf7ef4da7beec6a13667de8933367.tar.xz seaweedfs-dac95464b86bf7ef4da7beec6a13667de8933367.zip | |
better handling of os signals
Diffstat (limited to 'go/weed/server.go')
| -rw-r--r-- | go/weed/server.go | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/go/weed/server.go b/go/weed/server.go index 7684dcbde..8d8504285 100644 --- a/go/weed/server.go +++ b/go/weed/server.go @@ -7,7 +7,6 @@ import ( "github.com/gorilla/mux" "net/http" "os" - "os/signal" "runtime" "runtime/pprof" "strconv" @@ -218,16 +217,10 @@ func runServer(cmd *Command, args []string) bool { glog.Fatalf(e.Error()) } - // deal with control+c - signalChan := make(chan os.Signal, 1) - signal.Notify(signalChan, os.Interrupt, os.Kill) - go func() { - for _ = range signalChan { - volumeServer.Shutdown() - pprof.StopCPUProfile() - os.Exit(0) - } - }() + OnInterrupt(func() { + volumeServer.Shutdown() + pprof.StopCPUProfile() + }) if e := http.Serve(volumeListener, r); e != nil { glog.Fatalf("Fail to serve:%s", e.Error()) |
