Commit e1e84f48 authored by szh's avatar szh

安全关闭节点 添加程序是否关闭确认

parent dd544b60
...@@ -56,7 +56,7 @@ func Broadcast() { ...@@ -56,7 +56,7 @@ func Broadcast() {
tlog.Error("broadcast","err","wlan0 not exists") tlog.Error("broadcast","err","wlan0 not exists")
ip,err = util.GetLocalIpByName("eth0") ip,err = util.GetLocalIpByName("eth0")
if err != nil { if err != nil {
tlog.Error("broadcast","err","etn0 not exists") tlog.Error("broadcast","err","eth0 not exists")
time.Sleep(time.Second*1) time.Sleep(time.Second*1)
continue continue
} }
......
...@@ -59,6 +59,8 @@ type BityuanOp struct { ...@@ -59,6 +59,8 @@ type BityuanOp struct {
Lock sync.Mutex Lock sync.Mutex
} }
var paiJobs pai_service.Pai
var BityuanFlag BityuanOp //true表示有任务在占用,禁止其他重复操作 var BityuanFlag BityuanOp //true表示有任务在占用,禁止其他重复操作
var Bityuan ProcessInfo var Bityuan ProcessInfo
var UpdateInfo updateInfo var UpdateInfo updateInfo
......
...@@ -55,6 +55,13 @@ func RaspberryChan() { ...@@ -55,6 +55,13 @@ func RaspberryChan() {
} else { } else {
tlog.Error("deleteBackup fail ","err",err) tlog.Error("deleteBackup fail ","err",err)
} }
case "RESTART":
err := restartNode()
if err == nil {
tlog.Info("deleteBackup success","err",nil)
} else {
tlog.Error("deleteBackup fail ","err",err)
}
} }
} }
...@@ -223,6 +230,26 @@ func deleteBackup() error { ...@@ -223,6 +230,26 @@ func deleteBackup() error {
return nil return nil
} }
func restartNode() error {
BityuanFlag.Lock.Lock()
defer BityuanFlag.Lock.Unlock()
if btyPath == "" {
tlog.Error("btyPath empty","err","node not exists")
return errors.New("node not exists")
}
_,err := SafeCloseNode()
if err != nil {
return err
}
isrun := MakeSureBtyIsNotRun()
if isrun {
return errors.New("bty is running")
}
StartProcess(setting.Chain33Pai.Auto)
return nil
}
func MakeSureBtyIsNotRun() bool { func MakeSureBtyIsNotRun() bool {
s := time.Now() s := time.Now()
defer func() { defer func() {
......
...@@ -283,7 +283,12 @@ func CloseNode(c* gin.Context){ ...@@ -283,7 +283,12 @@ func CloseNode(c* gin.Context){
return return
} }
//防止其他模块未关闭 //防止其他模块未关闭
time.Sleep(time.Second * 2) //time.Sleep(time.Second * 2)
if !app.MakeSureBtyIsNotRun() {
appG.Response(http.StatusOK,e.NODE_ERROR,"node stop err")
app.BityuanFlag.Flag = false
return
}
appG.Response(http.StatusOK,e.SUCCESS,"node close safe") appG.Response(http.StatusOK,e.SUCCESS,"node close safe")
} }
......
...@@ -23,6 +23,8 @@ var ( ...@@ -23,6 +23,8 @@ var (
tlog = log.New("service", "pai_Service") tlog = log.New("service", "pai_Service")
) )
//在网络通畅的情况下 ENum 每30s +1 20=>restart 40 => rollback 60 =>recover
type Pai struct { type Pai struct {
Hardware string `json:"hardware"` Hardware string `json:"hardware"`
Revision string `json:"revision"` Revision string `json:"revision"`
...@@ -38,6 +40,9 @@ type Pai struct { ...@@ -38,6 +40,9 @@ type Pai struct {
Arch string `json:"arch"` Arch string `json:"arch"`
Disks []*pai.Disk Disks []*pai.Disk
IsBackup bool `json:"is_backup"` IsBackup bool `json:"is_backup"`
ENum int64 `json:"e_num"`
LocalLastHeight2 int64 `json:"local_last_height_2"`
ProLevel int64 `json:"pro_level"`
} }
type ReqUpdatePai struct { type ReqUpdatePai struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment