diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2006-01-16 16:19:28 +0000 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2006-01-16 16:19:28 +0000 | 
| commit | fc073b9af90ff44efcbb318633d026e754f86907 (patch) | |
| tree | c0405794f4a429e2bf8165cd5c55abf156638f72 /sdpd/main.c | |
| parent | e9799abfdd2520e3adbd5c3a1d27a9e466361598 (diff) | |
Redirect stdin, stdout, stderr to /dev/null for daemon
Diffstat (limited to 'sdpd/main.c')
| -rw-r--r-- | sdpd/main.c | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/sdpd/main.c b/sdpd/main.c index dd725c81..685ffa8b 100644 --- a/sdpd/main.c +++ b/sdpd/main.c @@ -30,6 +30,7 @@  #include <stdio.h>  #include <errno.h> +#include <fcntl.h>  #include <unistd.h>  #include <stdlib.h>  #include <signal.h> @@ -301,8 +302,16 @@ static int become_daemon(void)  			return 0;  		setsid();  	} -	for (fd = 0; fd < 3; fd++) -		close(fd); + +	fd = open("/dev/null", O_RDWR); +	if (fd != -1) { +		dup2(fd, STDIN_FILENO); +		dup2(fd, STDOUT_FILENO); +		dup2(fd, STDERR_FILENO); + +		if (fd > STDERR_FILENO) +			close(fd); +	}  	chdir("/");  	return 1; | 
