This commit is contained in:
ZhuoQinghui 2024-10-10 17:39:36 +08:00
parent 35cc5d360b
commit 9897db06e5

52
main.go
View File

@ -6,6 +6,7 @@ import (
"net"
"os"
"os/exec"
"path"
"path/filepath"
"strconv"
"syscall"
@ -27,7 +28,11 @@ func main() {
const pidFile = "acme-mana.pid"
const socketFile = "acme-mana.sock"
var stdout *os.File
var stderr *os.File
func start() {
initLog()
log.Println("Run Acme Mana...")
args := os.Args
if len(args) <= 1 {
@ -49,6 +54,28 @@ func start() {
}
}
func initLog() {
pwd, err := os.Getwd()
if err != nil {
log.Fatalf("Failed to get current working directory: %v", err)
}
dir := path.Join(pwd, "log")
_, err = os.Stat(dir)
if os.IsNotExist(err) {
err := os.Mkdir(dir, 0777)
if err != nil {
log.Fatalf("Failed to create directory: %v", err)
}
}
outFile, err := os.OpenFile(path.Join(dir, "out.log"), os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
defer outFile.Close()
stdout = outFile
errFile, err := os.OpenFile(path.Join(dir, "err.log"), os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
defer stderr.Close()
stderr = errFile
}
func daemonStart() {
isDaemon := os.Getenv("GO_DAEMON")
log.Println("Run Daemon, DAEMON Is " + isDaemon)
@ -64,13 +91,16 @@ func daemonStart() {
log.Fatalf("Failed to get executable path: %v", err)
}
cmd := exec.Cmd{
Path: path,
Args: os.Args,
Dir: filepath.Dir(path),
Env: append(os.Environ(), "GO_DAEMON=1"),
Stdin: os.Stdin,
Stdout: os.Stdout,
Stderr: os.Stderr,
Path: path,
Args: os.Args,
Dir: filepath.Dir(path),
Env: append(os.Environ(), "GO_DAEMON=1"),
//Stdin: os.Stdin,
Stdout: stdout,
Stderr: stderr,
//Stdin: os.Stdin,
//Stdout: os.Stdout,
//Stderr: os.Stderr,
SysProcAttr: &syscall.SysProcAttr{},
}
@ -190,10 +220,10 @@ func isRunning() bool {
log.Println("Failed to find process:", err)
return false
}
err = process.Signal(syscall.Signal(0))
log.Println("Signal result:", err)
return err == nil
return true
//err = process.Signal(syscall.Signal(0))
//log.Println("Signal result:", err)
//return err == nil
}
func readPID() (int, error) {