From 3758fc02e02d7786f5e4199e56b5deb133e2d3c2 Mon Sep 17 00:00:00 2001 From: boyce Date: Wed, 10 Mar 2021 15:17:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95stop=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E6=8C=87=E5=AE=9Anodeid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- node/node.go | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/node/node.go b/node/node.go index a4dd2c5..127dbc1 100644 --- a/node/node.go +++ b/node/node.go @@ -39,7 +39,7 @@ func init() { console.RegisterCommandBool("help",false,"<-help> This help.",usage) console.RegisterCommandString("start","","<-start nodeid=nodeid> Run originserver.",startNode) - console.RegisterCommandBool("stop",false,"<-stop> Stop originserver process.",stopNode) + console.RegisterCommandString("stop","","<-stop nodeid=nodeid> Stop originserver process.",stopNode) console.RegisterCommandString("config","","<-config path> Configuration file path.",setConfigPath) console.RegisterCommandString("console", "", "<-console true|false> Turn on or off screen log output.", openConsole) console.RegisterCommandString("loglevel", "debug", "<-loglevel debug|release|warning|error|fatal> Set loglevel.", setLevel) @@ -91,8 +91,8 @@ func setConfigPath(val interface{}) error{ return nil } -func getRunProcessPid() (int,error) { - f, err := os.OpenFile(os.Args[0]+".pid", os.O_RDONLY, 0600) +func getRunProcessPid(nodeId int) (int,error) { + f, err := os.OpenFile(fmt.Sprintf("%s_%d.pid",os.Args[0],nodeId), os.O_RDONLY, 0600) defer f.Close() if err!= nil { return 0,err @@ -106,9 +106,9 @@ func getRunProcessPid() (int,error) { return strconv.Atoi(string(pidByte)) } -func writeProcessPid() { +func writeProcessPid(nodeId int) { //pid - f, err := os.OpenFile(os.Args[0]+".pid", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) + f, err := os.OpenFile(fmt.Sprintf("%s_%d.pid",os.Args[0],nodeId), os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) defer f.Close() if err != nil { fmt.Println(err.Error()) @@ -174,12 +174,25 @@ func Start() { } func stopNode(args interface{}) error { - isStop := args.(bool) - if isStop == false{ + //1.解析参数 + param := args.(string) + if param == "" { return nil } - processId,err := getRunProcessPid() + sParam := strings.Split(param,"=") + if len(sParam) != 2 { + return fmt.Errorf("invalid option %s",param) + } + if sParam[0]!="nodeid" { + return fmt.Errorf("invalid option %s",param) + } + nodeId,err:= strconv.Atoi(sParam[1]) + if err != nil { + return fmt.Errorf("invalid option %s",param) + } + + processId,err := getRunProcessPid(nodeId) if err != nil { return err } @@ -224,7 +237,7 @@ func startNode(args interface{}) error{ service.Start() //5.记录进程id号 - writeProcessPid() + writeProcessPid(nodeId) //6.监听程序退出信号&性能报告 bRun := true