go-daemon icon indicating copy to clipboard operation
go-daemon copied to clipboard

Add a flag to control daemon or not, the signal handling miss

Open liminghuang opened this issue 5 years ago • 4 comments

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

liminghuang avatar Nov 13 '19 07:11 liminghuang

Facing the same problem. Can you please have a look @sevlyar?

Masquerade0097 avatar Jan 22 '21 09:01 Masquerade0097

Facing the same problem.

wbtlb avatar May 24 '21 08:05 wbtlb

Maybe related to https://github.com/sevlyar/go-daemon/pull/62 Will merge it and check.

deniszh avatar May 24 '21 15:05 deniszh

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.

deniszh avatar May 24 '21 20:05 deniszh