{
int ret;
int i;
int fd;
if ((ret = fork()) > 0)
exit(0);
}
/* Close all open inherited files! Except for ttyfd! */
for (i = 0; i < 64; i++)
for (i = 0; i < sysconf(_SC_OPEN_MAX); i++)
if(i != ttyfd)
close(i);
/* Redirect standard descriptors to /dev/null to avoid trouble */
fd = open("/dev/null", O_RDWR);
if (fd >= 0) {
if (fd != STDIN_FILENO)
dup2(fd, STDIN_FILENO);
if (fd != STDOUT_FILENO)
dup2(fd, STDOUT_FILENO);
if (fd != STDERR_FILENO)
dup2(fd, STDERR_FILENO);
if (fd > STDERR_FILENO)
close(fd);
write_pid();