The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > High Level Programming
.
google unix.com




Thread: Daemon process
View Single Post in the UNIX and Linux Forums - Click on the Thread or Permalink to View Entire Thread -->
  #1 (permalink)  
Old 12-26-2001
s_chordia s_chordia is offline
Registered User
  
 

Join Date: Dec 2001
Posts: 2
Angry Daemon process

Hi,
I have to write a daemon process, which performs certain operations in the background.
Now since it performs operations in the background, it should not display anything to the standard output.
The problem is that it still displays, text on standard output.
Can anyone tell me (it is urgent) how to avoid this.
I have written the following function to initialize the daemon code ...

int
daemon_init()
{
int pid, fd;

if (getppid() == 1)
{
goto out;
}

#ifdef SIGTTOU
signal(SIGTTOU, SIG_IGN);
#endif
#ifdef SIGTTIN
signal(SIGTTIN, SIG_IGN);
#endif
#ifdef SIGTSTP
signal(SIGTSTP, SIG_IGN);
#endif

pid = fork();
if (pid < 0)
{
return -1;
}
else if (pid > 0)
{
/* In parent exit leaving the child to work */
exit(0);
}

if (setpgrp() == -1)
{
return -1;
}
signal(SIGHUP, SIG_IGN);

pid = fork();
if (pid < 0)
{
return -1;
}
else if (pid > 0)
{
/* first child exits */
exit(0);
}

out:
/*for (fd = 3; fd < NOFILE; fd++)
close(fd);*/
/* In child detach from the parents session */
/*setsid();*/
chdir("/");
umask(0);

return 0;
}