mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-06-07 07:59:42 +08:00
Improved restart method
This commit is contained in:
parent
4a3288cb8d
commit
8900839018
52
main.go
52
main.go
@ -14,6 +14,7 @@ import (
|
|||||||
"os/exec"
|
"os/exec"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"path"
|
"path"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -97,6 +98,7 @@ func init() {
|
|||||||
func main() {
|
func main() {
|
||||||
console := bufio.NewReader(os.Stdin)
|
console := bufio.NewReader(os.Stdin)
|
||||||
var strKey string
|
var strKey string
|
||||||
|
var isRestart bool = false
|
||||||
arg := os.Args
|
arg := os.Args
|
||||||
fmt.Println(arg)
|
fmt.Println(arg)
|
||||||
if len(arg) > 1 {
|
if len(arg) > 1 {
|
||||||
@ -113,8 +115,9 @@ func main() {
|
|||||||
b := []byte(arg[i+1])
|
b := []byte(arg[i+1])
|
||||||
b = append(b, 13, 10)
|
b = append(b, 13, 10)
|
||||||
strKey = string(b[:])
|
strKey = string(b[:])
|
||||||
fmt.Println(b)
|
|
||||||
}
|
}
|
||||||
|
case "restart":
|
||||||
|
isRestart = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -253,8 +256,10 @@ func main() {
|
|||||||
key := md5.Sum([]byte(strKey))
|
key := md5.Sum([]byte(strKey))
|
||||||
conf.Password = DecryptPwd(conf.PasswordEncrypted, key[:])
|
conf.Password = DecryptPwd(conf.PasswordEncrypted, key[:])
|
||||||
}
|
}
|
||||||
log.Info("Bot将在5秒后登录并开始信息处理, 按 Ctrl+C 取消.")
|
if !isRestart {
|
||||||
time.Sleep(time.Second * 5)
|
log.Info("Bot将在5秒后登录并开始信息处理, 按 Ctrl+C 取消.")
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
}
|
||||||
log.Info("开始尝试登录并同步消息...")
|
log.Info("开始尝试登录并同步消息...")
|
||||||
log.Infof("使用协议: %v", func() string {
|
log.Infof("使用协议: %v", func() string {
|
||||||
switch client.SystemDeviceInfo.Protocol {
|
switch client.SystemDeviceInfo.Protocol {
|
||||||
@ -323,15 +328,10 @@ func main() {
|
|||||||
case <-c:
|
case <-c:
|
||||||
b.Release()
|
b.Release()
|
||||||
case <-r:
|
case <-r:
|
||||||
b.Release()
|
log.Info("正在重启中...")
|
||||||
cmd := &exec.Cmd{
|
|
||||||
Path: arg[0],
|
|
||||||
Args: arg[1:],
|
|
||||||
Stderr: os.Stderr,
|
|
||||||
Stdout: os.Stdout,
|
|
||||||
}
|
|
||||||
server.HttpServer.ShutDown()
|
server.HttpServer.ShutDown()
|
||||||
cmd.Start()
|
defer b.Release()
|
||||||
|
restart(arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -451,3 +451,33 @@ func selfUpdate(imageUrl string) {
|
|||||||
readLine()
|
readLine()
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func restart(Args []string) {
|
||||||
|
cmd := &exec.Cmd{}
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
file, err := exec.LookPath(Args[0])
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("重启失败:%s", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
path, err := filepath.Abs(file)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("重启失败:%s", err.Error())
|
||||||
|
}
|
||||||
|
Args = append([]string{"/c", "start ", path, "restart"}, Args[1:]...)
|
||||||
|
cmd = &exec.Cmd{
|
||||||
|
Path: "cmd.exe",
|
||||||
|
Args: Args,
|
||||||
|
Stderr: os.Stderr,
|
||||||
|
Stdout: os.Stdout,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cmd = &exec.Cmd{
|
||||||
|
Path: Args[0],
|
||||||
|
Args: Args,
|
||||||
|
Stderr: os.Stderr,
|
||||||
|
Stdout: os.Stdout,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cmd.Start()
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user