|
|
|
@ -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
|
|
|
|
|