chore: 移除 daemon 模式

This commit is contained in:
Mmx233
2023-06-01 18:26:09 +08:00
parent 874eeddf96
commit 6c60a52d4e
10 changed files with 7 additions and 133 deletions

View File

@@ -1,59 +0,0 @@
package controllers
import (
"fmt"
"github.com/Mmx233/BitSrunLoginGo/internal/global"
"github.com/howeyc/fsnotify"
"os"
"time"
)
type daemon struct {
Mark string
Path string
}
// Daemon 后台模式控制包
var Daemon = daemon{
Mark: fmt.Sprint(time.Now().UnixNano()),
Path: global.Config.Settings.Daemon.Path,
}
// MarkDaemon 写入后台标记文件
func (a *daemon) MarkDaemon() error {
return os.WriteFile(a.Path, []byte(a.Mark), 0600)
}
// CheckDaemon 检查后台标记文件
func (a *daemon) CheckDaemon() bool {
if data, err := os.ReadFile(a.Path); err != nil {
return false
} else {
return string(data) == a.Mark
}
}
// DaemonChan 后台标记文件监听
func (a *daemon) DaemonChan() bool {
f, err := fsnotify.NewWatcher()
if err != nil {
panic(err)
}
err = f.Watch(Daemon.Path)
if err != nil {
panic(err)
}
for {
select {
case event := <-f.Event:
if event.IsModify() && a.CheckDaemon() {
continue
}
os.Exit(0)
case e := <-f.Error:
panic(e)
}
}
}

View File

@@ -2,8 +2,6 @@ package controllers
import (
"github.com/Mmx233/BitSrunLoginGo/internal/global"
"os"
"os/exec"
"time"
"github.com/Mmx233/BitSrunLoginGo/tools"
@@ -12,16 +10,10 @@ import (
// Guardian 守护模式逻辑
func Guardian() {
log.Infoln("[以守护模式启动]")
GuardianDuration := time.Duration(global.Config.Settings.Guardian.Duration) * time.Second
if global.Config.Settings.Daemon.Enable {
go Daemon.DaemonChan()
if e := Daemon.MarkDaemon(); e != nil {
log.Warnln("写入daemon标记文件失败: ", e)
}
}
var c = make(chan bool)
for {
go func() {
@@ -52,16 +44,3 @@ func Guardian() {
time.Sleep(GuardianDuration)
}
}
// EnterGuardian 守护模式入口控制是否进入daemon
func EnterGuardian() {
log.Infoln("[以守护模式启动]")
if global.Config.Settings.Daemon.Enable || global.Flags.Daemon {
if err := exec.Command(os.Args[0], append(os.Args[1:], "--running-daemon")...).Start(); err != nil {
log.Fatalln("启动守护失败: ", err)
}
log.Infoln("[进入后台进程模式]")
return
}
Guardian()
}