daemon
This commit is contained in:
parent
35cc5d360b
commit
9897db06e5
44
main.go
44
main.go
|
@ -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)
|
||||
|
@ -68,9 +95,12 @@ func daemonStart() {
|
|||
Args: os.Args,
|
||||
Dir: filepath.Dir(path),
|
||||
Env: append(os.Environ(), "GO_DAEMON=1"),
|
||||
Stdin: os.Stdin,
|
||||
Stdout: os.Stdout,
|
||||
Stderr: os.Stderr,
|
||||
//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) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user