Browse Source

hot reload

刘河 6 years ago
parent
commit
5beee738df
2 changed files with 24 additions and 11 deletions
  1. 1 11
      cmd/nps/nps.go
  2. 23 0
      lib/daemon/reload.go

+ 1 - 11
cmd/nps/nps.go

@@ -17,9 +17,7 @@ import (
 	_ "github.com/cnlh/nps/web/routers"
 	"log"
 	"os"
-	"os/signal"
 	"path/filepath"
-	"syscall"
 )
 
 var (
@@ -36,7 +34,7 @@ func main() {
 			test.TestServerConfig()
 			log.Println("test ok, no error")
 			return
-		case "start", "restart", "stop", "status","reload":
+		case "start", "restart", "stop", "status", "reload":
 			daemon.InitDaemon("nps", common.GetRunPath(), common.GetTmpPath())
 		case "install":
 			install.InstallNps()
@@ -66,13 +64,5 @@ func main() {
 	connection.InitConnectionService()
 	crypt.InitTls(filepath.Join(beego.AppPath, "conf", "server.pem"), filepath.Join(beego.AppPath, "conf", "server.key"))
 	tool.InitAllowPort()
-	s := make(chan os.Signal, 1)
-	signal.Notify(s, syscall.SIGUSR1)
-	go func() {
-		for {
-			<-s
-			beego.LoadAppConfig("ini", filepath.Join(common.GetRunPath(), "conf", "nps.conf"))
-		}
-	}()
 	server.StartNewServer(bridgePort, task, beego.AppConfig.String("bridge_type"))
 }

+ 23 - 0
lib/daemon/reload.go

@@ -0,0 +1,23 @@
+// +build !windows
+
+package daemon
+
+import (
+	"github.com/cnlh/nps/lib/common"
+	"github.com/cnlh/nps/vender/github.com/astaxie/beego"
+	"os"
+	"os/signal"
+	"path/filepath"
+	"syscall"
+)
+
+func init() {
+	s := make(chan os.Signal, 1)
+	signal.Notify(s, syscall.SIGUSR1)
+	go func() {
+		for {
+			<-s
+			beego.LoadAppConfig("ini", filepath.Join(common.GetRunPath(), "conf", "nps.conf"))
+		}
+	}()
+}