Starting a daemon on a SVR3
wolf at grasp1.univ-lyon1.fr
wolf at grasp1.univ-lyon1.fr
Tue Jan 1 01:03:11 AEST 1991
On an old AIX, I use following code to start a daemon (which does not run
with root privileges).
setbuf(stdout,NULL); printf("Listserv v0.99: daemon started\n\r");
if (fork()) exit (0); /* Dissociate us from tty */
for (i=getdtablesize()-1; i>=0; i--)
(void)close(i);
(void)open("/",0);
(void)dup2(0,1);
(void)dup2(0,2);
i=open("/dev/tty",2);
if (i>=0) {
ioctl(i,TIOCNOTTY,(char *)0);
(void)close(i);
}
This works fine, but I get trouble when porting this daemon to an SRV3.
getdtablesize does not exist anymore, so I close all open files manually
with a fixed loop (I put 4 in first index).
The ioctl call does also not exist, and I found no equivalence.
After having executed the new code it loads itself in background and
ps shows me it does not depend anymore on a tty. Despite this, when
I loggoff, the process is being killed. Can anyone explain me what I
have to do to start properly a daemon? Thanx.
--
Christophe Wolfhugel | Email: wolf at grasp1.univ-lyon1.fr
INSA Lyon - Departement Informatique | Fax: (+33) 72 44 08 00
69621 Villeurbanne Cedex, France | (Attn-To: Wolfhugel - C 210)
Disclaimer: these are my own opinions, not my employer's.
More information about the Comp.unix.questions
mailing list