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 ----
|