Skip to content

Commit 91f3e89

Browse files
committed
添加对 mindoc-daemon 的支持
1 parent f7bc9bd commit 91f3e89

File tree

2 files changed

+34
-7
lines changed

2 files changed

+34
-7
lines changed

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ go build -v -o mindoc_linux_musl_amd64 -ldflags="-linkmode external -extldflags
9494
./mindoc_linux_musl_amd64 version
9595
```
9696

97+
## Windows 上后台运行
98+
使用 [mindoc-daemon](https://github.com/mindoc-org/mindoc-daemon)
99+
97100

98101
```ini
99102
#邮件配置-示例

main.go

+31-7
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@ package main
22

33
import (
44
"fmt"
5+
"io/ioutil"
56
"log"
67
"os"
8+
"path/filepath"
9+
"runtime"
10+
"strings"
711

812
_ "github.com/beego/beego/v2/server/web/session/memcache"
913
_ "github.com/beego/beego/v2/server/web/session/mysql"
@@ -15,6 +19,21 @@ import (
1519
_ "github.com/mindoc-org/mindoc/routers"
1620
)
1721

22+
func isViaDaemonUnix() bool {
23+
parentPid := os.Getppid()
24+
25+
cmdLineBytes, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cmdline", parentPid))
26+
if err != nil {
27+
return false
28+
}
29+
30+
cmdLine := string(cmdLineBytes)
31+
executable := strings.Split(cmdLine, " ")[0]
32+
fmt.Printf("Parent executable: %s\n", executable)
33+
filename := filepath.Base(executable)
34+
return strings.Contains(filename, "mindoc-daemon")
35+
}
36+
1837
func main() {
1938

2039
if len(os.Args) >= 3 && os.Args[1] == "service" {
@@ -30,14 +49,19 @@ func main() {
3049

3150
d := daemon.NewDaemon()
3251

33-
s, err := service.New(d, d.Config())
52+
if runtime.GOOS != "windows" && !isViaDaemonUnix() {
53+
s, err := service.New(d, d.Config())
3454

35-
if err != nil {
36-
fmt.Println("Create service error => ", err)
37-
os.Exit(1)
38-
}
55+
if err != nil {
56+
fmt.Println("Create service error => ", err)
57+
os.Exit(1)
58+
}
3959

40-
if err := s.Run(); err != nil {
41-
log.Fatal("启动程序失败 ->", err)
60+
if err := s.Run(); err != nil {
61+
log.Fatal("启动程序失败 ->", err)
62+
}
63+
} else {
64+
d.Run()
4265
}
66+
4367
}

0 commit comments

Comments
 (0)