From 6fdc881bd4ffb0a97a9a3f6ec65182575c5b0bde Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 18 Aug 2015 23:36:08 +0800 Subject: [PATCH] detect kill signal --- cmd/web.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cmd/web.go b/cmd/web.go index c441e9196..84def2a48 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -12,6 +12,7 @@ import ( "net/http" "net/http/fcgi" "os" + "os/signal" "path" "strings" @@ -530,6 +531,16 @@ func runWeb(ctx *cli.Context) { // Not found handler. m.NotFound(routers.NotFound) + // Detect kill signal. + c := make(chan os.Signal, 1) + signal.Notify(c, os.Interrupt) + go func() { + for _ = range c { + fmt.Println("Kill signal detected, exiting now...") + os.Exit(0) + } + }() + // Flag for port number in case first time run conflict. if ctx.IsSet("port") { setting.AppUrl = strings.Replace(setting.AppUrl, setting.HttpPort, ctx.String("port"), 1)