summaryrefslogtreecommitdiffstats
path: root/polyp
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-12-14 14:20:52 +0000
committerLennart Poettering <lennart@poettering.net>2004-12-14 14:20:52 +0000
commitbc5b917f93f39215b54593cc45228e97e14daec3 (patch)
tree942de8d524cda452ab29c009a5ae6accfbb1756d /polyp
parenta370e6e7635d4a0b50c5c884974764c890959a48 (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.c11
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("/");