From: Robert W. <wrw...@us...> - 2008-03-28 02:36:07
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20453/src Modified Files: iSNSLinux.c Log Message: fix daemon holding open parent descriptors Index: iSNSLinux.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSLinux.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** iSNSLinux.c 23 Aug 2007 22:31:07 -0000 1.16 --- iSNSLinux.c 28 Mar 2008 02:36:00 -0000 1.17 *************** *** 222,227 **** exit(1); } ! else if (pid) { exit(0); } --- 222,228 ---- exit(1); } ! else if (pid > 0) { + //__LOG_INFO("iSNS parent pid=%i\n",getpid() ); exit(0); } *************** *** 230,236 **** int fd_pid; char buf[64]; ! char *pid_file = "/var/run/isnss.pid"; int rc; fd_pid = open(pid_file, O_WRONLY | O_CREAT, 0644); --- 231,245 ---- int fd_pid; char buf[64]; ! char *pid_file = "/var/run/isnsd.pid"; int rc; + int i; + setsid(); + for (i=getdtablesize();i>0;--i) close(i); // close all descriptors + + chdir("/"); + i=open("/dev/null",O_RDWR); + dup(i); //sdout + dup(i); //sterr fd_pid = open(pid_file, O_WRONLY | O_CREAT, 0644); *************** *** 247,251 **** __LOG_INFO ("isns daemon started as pid:%i",getpid()); - setsid(); } } --- 256,259 ---- *************** *** 254,258 **** /* Never should hit this. */ - exit (-1); } --- 262,265 ---- |