diff options
| -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("/");  | 
