更新守护进程方式

pull/23/head
630892807@qq.com 4 years ago
parent aa3a0ed92d
commit d0f9133224

@ -8,10 +8,9 @@ import (
"github.com/taoshihan1991/imaptool/middleware"
"github.com/taoshihan1991/imaptool/router"
"github.com/taoshihan1991/imaptool/tools"
"github.com/zh-five/xdaemon"
"log"
"os"
"os/exec"
"path/filepath"
)
var (
@ -33,17 +32,30 @@ func init() {
}
func run() {
if daemon == true {
if os.Getppid() != 1 {
// 将命令行参数中执行文件路径转换成可用路径
filePath, _ := filepath.Abs(os.Args[0])
cmd := exec.Command(filePath, os.Args[1:]...)
// 将其他命令传入生成出的进程
cmd.Stdin = os.Stdin // 给新进程设置文件描述符,可以重定向到文件中
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Start() // 开始执行新进程,不等待新进程退出
os.Exit(0)
logFilePath := ""
if dir, err := os.Getwd(); err == nil {
logFilePath = dir + "/logs/"
}
_, err := os.Stat(logFilePath)
if os.IsNotExist(err) {
if err := os.MkdirAll(logFilePath, 0777); err != nil {
log.Println(err.Error())
}
}
d := xdaemon.NewDaemon(logFilePath + "go-fly.log")
d.MaxCount = 5
d.Run()
//if os.Getppid() != 1 {
// // 将命令行参数中执行文件路径转换成可用路径
// filePath, _ := filepath.Abs(os.Args[0])
// cmd := exec.Command(filePath, os.Args[1:]...)
// // 将其他命令传入生成出的进程
// cmd.Stdin = os.Stdin // 给新进程设置文件描述符,可以重定向到文件中
// cmd.Stdout = os.Stdout
// cmd.Stderr = os.Stderr
// cmd.Start() // 开始执行新进程,不等待新进程退出
// os.Exit(0)
//}
}
baseServer := "0.0.0.0:" + Port

@ -26,6 +26,7 @@ require (
github.com/spf13/cobra v0.0.5
github.com/swaggo/gin-swagger v1.2.0
github.com/swaggo/swag v1.5.1
github.com/zh-five/xdaemon v0.1.1
golang.org/x/net v0.0.0-20200513185701-a91f0712d120
golang.org/x/text v0.3.2
)

@ -213,6 +213,8 @@ github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/zh-five/xdaemon v0.1.1 h1:W5VyJ+5ROjjcb9vNcF/SgWPwTzIRYIsW2yZBAomqMW8=
github.com/zh-five/xdaemon v0.1.1/go.mod h1:i3cluMVOPp/UcX2KDU2qzRv25f8u4y14tHzBPQhD8lI=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=

Loading…
Cancel
Save