diff options
Diffstat (limited to 'src/daemon.c')
-rw-r--r-- | src/daemon.c | 63 |
1 files changed, 29 insertions, 34 deletions
diff --git a/src/daemon.c b/src/daemon.c index 17d41b5..9a87d7a 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -29,29 +29,28 @@ * Fork a child process and then kill the parent so make the calling * program a daemon process. */ -void -makedaemon (void) +void makedaemon (void) { - if (fork () != 0) - exit (0); + if (fork () != 0) + exit (0); - setsid (); - set_signal_handler (SIGHUP, SIG_IGN); + setsid (); + set_signal_handler (SIGHUP, SIG_IGN); - if (fork () != 0) - exit (0); + if (fork () != 0) + exit (0); - chdir ("/"); - umask (0177); + chdir ("/"); + umask (0177); #if NDEBUG - /* - * When not in debugging mode, close the standard file - * descriptors. - */ - close (0); - close (1); - close (2); + /* + * When not in debugging mode, close the standard file + * descriptors. + */ + close (0); + close (1); + close (2); #endif } @@ -59,29 +58,25 @@ makedaemon (void) * Pass a signal number and a signal handling function into this function * to handle signals sent to the process. */ -signal_func * -set_signal_handler (int signo, signal_func * func) +signal_func *set_signal_handler (int signo, signal_func * func) { - struct sigaction act, oact; + struct sigaction act, oact; - act.sa_handler = func; - sigemptyset (&act.sa_mask); - act.sa_flags = 0; - if (signo == SIGALRM) - { + act.sa_handler = func; + sigemptyset (&act.sa_mask); + act.sa_flags = 0; + if (signo == SIGALRM) { #ifdef SA_INTERRUPT - act.sa_flags |= SA_INTERRUPT; /* SunOS 4.x */ + act.sa_flags |= SA_INTERRUPT; /* SunOS 4.x */ #endif - } - else - { + } else { #ifdef SA_RESTART - act.sa_flags |= SA_RESTART; /* SVR4, 4.4BSD */ + act.sa_flags |= SA_RESTART; /* SVR4, 4.4BSD */ #endif - } + } - if (sigaction (signo, &act, &oact) < 0) - return SIG_ERR; + if (sigaction (signo, &act, &oact) < 0) + return SIG_ERR; - return oact.sa_handler; + return oact.sa_handler; } |