Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cmcl2!adm!news From: wolf@grasp1.univ-lyon1.fr Newsgroups: comp.unix.questions Subject: Starting a daemon on a SVR3 Message-ID: <25360@adm.brl.mil> Date: 31 Dec 90 14:03:11 GMT Sender: news@adm.brl.mil Lines: 32 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@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.