mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
优化重复启动验证
This commit is contained in:
51
node/node.go
51
node/node.go
@@ -289,38 +289,43 @@ func startNode(args interface{}) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("invalid option %s", param)
|
return fmt.Errorf("invalid option %s", param)
|
||||||
}
|
}
|
||||||
processId, err := getRunProcessPid(nodeId)
|
for{
|
||||||
if err != nil {
|
processId, pErr := getRunProcessPid(nodeId)
|
||||||
return err
|
if pErr != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
name, cErr := sysprocess.GetProcessNameByPID(int32(processId))
|
||||||
|
myName, mErr := sysprocess.GetMyProcessName()
|
||||||
|
//当前进程名获取失败,不应该发生
|
||||||
|
if mErr != nil {
|
||||||
|
log.SInfo("get my process's name is error,", err.Error())
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
//进程id存在,而且进程名也相同,被认为是当前进程重复运行
|
||||||
|
if cErr == nil && name == myName {
|
||||||
|
log.SInfo(fmt.Sprintf("repeat runs are not allowed,node is %d,processid is %d",nodeId,processId))
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
name, cErr := sysprocess.GetProcessNameByPID(int32(processId))
|
//2.记录进程id号
|
||||||
myName, mErr := sysprocess.GetMyProcessName()
|
|
||||||
//当前进程名获取失败,不应该发生
|
|
||||||
if mErr != nil {
|
|
||||||
log.SInfo("get my process's name is error,", err.Error())
|
|
||||||
os.Exit(-1)
|
|
||||||
}
|
|
||||||
|
|
||||||
//进程id存在,而且进程名也相同,被认为是当前进程重复运行
|
|
||||||
if cErr == nil && name == myName {
|
|
||||||
log.SInfo(fmt.Sprintf("repeat runs are not allowed,node is %d,processid is %d",nodeId,processId))
|
|
||||||
os.Exit(-1)
|
|
||||||
}
|
|
||||||
|
|
||||||
timer.StartTimer(10*time.Millisecond, 1000000)
|
|
||||||
log.Info("Start running server.")
|
log.Info("Start running server.")
|
||||||
//2.初始化node
|
writeProcessPid(nodeId)
|
||||||
|
timer.StartTimer(10*time.Millisecond, 1000000)
|
||||||
|
|
||||||
|
//3.初始化node
|
||||||
initNode(nodeId)
|
initNode(nodeId)
|
||||||
|
|
||||||
//3.运行service
|
//4.运行service
|
||||||
service.Start()
|
service.Start()
|
||||||
|
|
||||||
//4.运行集群
|
//5.运行集群
|
||||||
cluster.GetCluster().Start()
|
cluster.GetCluster().Start()
|
||||||
|
|
||||||
//5.记录进程id号
|
|
||||||
writeProcessPid(nodeId)
|
|
||||||
|
|
||||||
//6.监听程序退出信号&性能报告
|
//6.监听程序退出信号&性能报告
|
||||||
bRun := true
|
bRun := true
|
||||||
|
|||||||
Reference in New Issue
Block a user