]> code.delx.au - pulseaudio/commitdiff
do mor daemonizing work
authorLennart Poettering <lennart@poettering.net>
Tue, 14 Dec 2004 14:20:52 +0000 (14:20 +0000)
committerLennart Poettering <lennart@poettering.net>
Tue, 14 Dec 2004 14:20:52 +0000 (14:20 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@323 fefdeb5f-60dc-0310-8127-8f9354f1896f

polyp/main.c

index 43a48f6b3627b89ec931697a0811d0b284d1b2ff..f033c38e452cecdf5541e2dd7f295c8a3c5b9a9f 100644 (file)
@@ -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("/");