go-daemon
go-daemon copied to clipboard
Add a flag to control daemon or not, the signal handling miss
Follow the Signal handling to do a sample, my program needs a flag to control it into daemon mode or not.
I add a new flag to control it.
dMode = flag.Bool("d", false, "Enable/Disable daemon mode")
and check the flag to enable daemon or not
if *dMode == true {
cntxt := &daemon.Context{
PidFileName: "sample.pid",
PidFilePerm: 0644,
LogFileName: "sample.log",
LogFilePerm: 0640,
WorkDir: "./",
Umask: 027,
Args: []string{"[go-daemon sample]"},
}
if len(daemon.ActiveFlags()) > 0 {
d, err := cntxt.Search()
if err != nil {
log.Fatalf("Unable send signal to the daemon: %s", err.Error())
}
daemon.SendCommands(d)
return
}
d, err := cntxt.Reborn()
if err != nil {
log.Fatalln(err)
}
if d != nil {
return
}
defer cntxt.Release()
}
The program look likes running normally in background by daemon, but the pid file is created with empty content, then use -s stop
flag to stop daemon, I got the error msg
Unable send signal to the daemon: EOF
Any idea? Please
Facing the same problem. Can you please have a look @sevlyar?
Facing the same problem.
Maybe related to https://github.com/sevlyar/go-daemon/pull/62 Will merge it and check.
I tried signal-handling.go
and I can't reproduce - for me it works fine, both on Linux and MacOS. If someone have clear steps to reproduce - please let me know.