diff options
| author | Chris Lu <chris.lu@gmail.com> | 2014-05-13 00:04:28 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2014-05-13 00:04:28 -0700 |
| commit | 7e0ae72b07697bd87c9e83acca14ef87832da899 (patch) | |
| tree | b89becf17bb84ab842ac12b74cd8608be40c832b /go | |
| parent | 982aaa41b906912dbf3b68005edc9c5dd0730f4a (diff) | |
| download | seaweedfs-7e0ae72b07697bd87c9e83acca14ef87832da899.tar.xz seaweedfs-7e0ae72b07697bd87c9e83acca14ef87832da899.zip | |
Add control+c or INT handling
Diffstat (limited to 'go')
| -rw-r--r-- | go/weed/volume.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/go/weed/volume.go b/go/weed/volume.go index 43cff9ccf..fa09eb6b5 100644 --- a/go/weed/volume.go +++ b/go/weed/volume.go @@ -78,7 +78,7 @@ func runVolume(cmd *Command, args []string) bool { r := http.NewServeMux() - weed_server.NewVolumeServer(r, *ip, *vport, *publicIp, folders, maxCounts, + volumeServer := weed_server.NewVolumeServer(r, *ip, *vport, *publicIp, folders, maxCounts, *masterNode, *vpulse, *dataCenter, *rack, volumeWhiteList, ) @@ -91,6 +91,16 @@ func runVolume(cmd *Command, args []string) bool { glog.Fatalf(e.Error()) } + // deal with control+c + signalChan := make(chan os.Signal, 1) + signal.Notify(signalChan, os.Interrupt) + go func() { + for _ = range signalChan { + volumeServer.Shutdown() + os.Exit(0) + } + }() + if e := http.Serve(listener, r); e != nil { glog.Fatalf("Fail to serve:%s", e.Error()) } |
