Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 01 Jun 2001 12:10:35 +1000
From:      Gregory Bond <gnb@itga.com.au>
To:        stable@freebsd.org
Subject:   Who's HUPing my daemon?
Message-ID:  <200106010210.MAA26759@lightning.itga.com.au>

next in thread | raw e-mail | index | archive | help

I'm trying to get a daemon running at boot time from rc.d.  When the system
boots, the script is run, the daemon is started, and all is fine. Then a few
seconds later, (possibly at the same time that rc finishes and getty is
launched), the daemon gets a SIGHUP and cleans itself up and exits.  Running
the start script by hand after logging in works and the daemon stays active 
more or less forever as you expect.

Some hackery with ktrace shows that it is a SIGHUP that is killing it, and it 
is waiting in select() at the time (which is the expected state).

The relevent code in main() is like this:
        if(makedaemon && fork())
                exit(0);

        openlog("bpalogin",LOG_PID,LOG_DAEMON);

I'm suspicious that just a plain fork() is not enough to disconnect from the 
boot sequence but I can't work out what's causing the HUP.  Suggestions?

(I suspect replacing the code with
	if (makedaemon) daemon(0,0); 
will fix it...  bloody Linux hackers, no respect for real Unix!)




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200106010210.MAA26759>