添加对 mindoc-daemon 的支持

pull/866/head
gsw945 2023-05-22 17:40:07 +08:00
parent f7bc9bdb70
commit 91f3e897bf
2 changed files with 34 additions and 7 deletions

View File

@ -94,6 +94,9 @@ go build -v -o mindoc_linux_musl_amd64 -ldflags="-linkmode external -extldflags
./mindoc_linux_musl_amd64 version
```
## Windows 上后台运行
使用 [mindoc-daemon](https://github.com/mindoc-org/mindoc-daemon)
```ini
#邮件配置-示例

38
main.go
View File

@ -2,8 +2,12 @@ package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"path/filepath"
"runtime"
"strings"
_ "github.com/beego/beego/v2/server/web/session/memcache"
_ "github.com/beego/beego/v2/server/web/session/mysql"
@ -15,6 +19,21 @@ import (
_ "github.com/mindoc-org/mindoc/routers"
)
func isViaDaemonUnix() bool {
parentPid := os.Getppid()
cmdLineBytes, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cmdline", parentPid))
if err != nil {
return false
}
cmdLine := string(cmdLineBytes)
executable := strings.Split(cmdLine, " ")[0]
fmt.Printf("Parent executable: %s\n", executable)
filename := filepath.Base(executable)
return strings.Contains(filename, "mindoc-daemon")
}
func main() {
if len(os.Args) >= 3 && os.Args[1] == "service" {
@ -30,14 +49,19 @@ func main() {
d := daemon.NewDaemon()
s, err := service.New(d, d.Config())
if runtime.GOOS != "windows" && !isViaDaemonUnix() {
s, err := service.New(d, d.Config())
if err != nil {
fmt.Println("Create service error => ", err)
os.Exit(1)
if err != nil {
fmt.Println("Create service error => ", err)
os.Exit(1)
}
if err := s.Run(); err != nil {
log.Fatal("启动程序失败 ->", err)
}
} else {
d.Run()
}
if err := s.Run(); err != nil {
log.Fatal("启动程序失败 ->", err)
}
}