diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-12-14 14:20:52 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-12-14 14:20:52 +0000 |
commit | bc5b917f93f39215b54593cc45228e97e14daec3 (patch) | |
tree | 942de8d524cda452ab29c009a5ae6accfbb1756d /polyp | |
parent | a370e6e7635d4a0b50c5c884974764c890959a48 (diff) |
do mor daemonizing work
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@323 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'polyp')
-rw-r--r-- | polyp/main.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/polyp/main.c b/polyp/main.c index 43a48f6b..f033c38e 100644 --- a/polyp/main.c +++ b/polyp/main.c @@ -35,6 +35,7 @@ #include <memblock.h> #include <limits.h> #include <fcntl.h> +#include <sys/ioctl.h> #ifdef HAVE_LIBWRAP #include <syslog.h> @@ -241,6 +242,7 @@ int main(int argc, char *argv[]) { if (conf->daemonize) { pid_t child; + int tty_fd; if (pa_stdio_acquire() < 0) { pa_log(__FILE__": failed to acquire stdio.\n"); @@ -292,6 +294,15 @@ int main(int argc, char *argv[]) { open("/dev/null", O_RDONLY); open("/dev/null", O_WRONLY); open("/dev/null", O_WRONLY); + + signal(SIGTTOU, SIG_IGN); + signal(SIGTTIN, SIG_IGN); + signal(SIGTSTP, SIG_IGN); + + if ((tty_fd = open("/dev/tty", O_RDWR)) >= 0) { + ioctl(tty_fd, TIOCNOTTY, (char*) 0); + close(tty_fd); + } } chdir("/"); |