workaround weird behavior of ctx.Release, pidfile now containts daemon's pid
This commit is contained in:
parent
2d7625101f
commit
a1bad13490
1 changed files with 9 additions and 6 deletions
15
main.go
15
main.go
|
|
@ -130,7 +130,7 @@ func becomeDaemon() {
|
||||||
PidFileName: pidPath,
|
PidFileName: pidPath,
|
||||||
PidFilePerm: 0644,
|
PidFilePerm: 0644,
|
||||||
WorkDir: cwd,
|
WorkDir: cwd,
|
||||||
Umask: 027,
|
Umask: 002,
|
||||||
}
|
}
|
||||||
|
|
||||||
dmn, err := ctx.Reborn()
|
dmn, err := ctx.Reborn()
|
||||||
|
|
@ -139,22 +139,26 @@ func becomeDaemon() {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
if dmn != nil {
|
if dmn != nil {
|
||||||
ctx.Release()
|
|
||||||
|
|
||||||
// parent process no longer needed
|
// parent process no longer needed
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
defer ctx.Release()
|
|
||||||
|
|
||||||
// -- WE ARE NOW THE DAEMON --
|
// -- WE ARE NOW THE DAEMON --
|
||||||
|
|
||||||
// write pid
|
// write pid
|
||||||
if pidPath != "" {
|
if pidPath != "" {
|
||||||
pidFile, _ := os.OpenFile(pidPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
|
pidFile, err := os.OpenFile(pidPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(0644))
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to create pidfile: %v", err)
|
||||||
|
}
|
||||||
defer pidFile.Close()
|
defer pidFile.Close()
|
||||||
|
|
||||||
pidBytes := []byte(strconv.Itoa(os.Getpid()))
|
pidBytes := []byte(strconv.Itoa(os.Getpid()))
|
||||||
pidFile.Write(pidBytes)
|
_, err = pidFile.Write(pidBytes)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to write pidfile: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -175,7 +179,6 @@ func nodeMain() {
|
||||||
setupLogging(config.Log)
|
setupLogging(config.Log)
|
||||||
|
|
||||||
// only after logging setup, we may became daemon
|
// only after logging setup, we may became daemon
|
||||||
println(pidPath)
|
|
||||||
if daemonize {
|
if daemonize {
|
||||||
becomeDaemon()
|
becomeDaemon()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue