From 217be020a262b94065b4df0cc9e6735cc47b3a80 Mon Sep 17 00:00:00 2001 From: Fritz Elfert Date: Fri, 15 Feb 2002 08:40:26 +0000 Subject: Correct daemonizing --- ncpd/main.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'ncpd') diff --git a/ncpd/main.cc b/ncpd/main.cc index 50931c6..465c003 100644 --- a/ncpd/main.cc +++ b/ncpd/main.cc @@ -31,6 +31,9 @@ #include #include #include +#include +#include +#include #include "ncp.h" #include "bufferstore.h" @@ -208,7 +211,17 @@ main(int argc, char **argv) syslog(LOG_INFO, "daemon started. Listening at 127.0.0.1:%d, using device %s\n", sockNum, serialDevice); - close(0); close(1); close(2); + setsid(); + chdir("/"); + int devnull = + open("/dev/null", O_RDWR, 0); + if (devnull != -1) { + dup2(devnull, STDIN_FILENO); + dup2(devnull, STDOUT_FILENO); + dup2(devnull, STDERR_FILENO); + if (devnull > 2) + close(devnull); + } } ncp *a = new ncp(serialDevice, baudRate, iow); int numScp = 0; -- cgit v1.2.3