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