X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=daemon.c;h=392dccbae8f09e963ce29cbf9a890a8a83f96355;hb=45211afd2fe62b361a3062a306c7305fa85479bc;hp=c3aac5ff84cf597a191b070a38ad692edb5081ef;hpb=320d839e39b3f6860823f5ecc839838d93c40414;p=apps%2Fpfixtools.git diff --git a/daemon.c b/daemon.c index c3aac5f..392dccb 100644 --- a/daemon.c +++ b/daemon.c @@ -127,3 +127,25 @@ int accept_nonblock(int fd) return sock; } + +int daemon_detach(void) +{ + pid_t pid; + + close(STDIN_FILENO); + close(STDOUT_FILENO); + close(STDERR_FILENO); + + open("/dev/null", O_RDWR); + open("/dev/null", O_RDWR); + open("/dev/null", O_RDWR); + + pid = fork(); + if (pid < 0) + return -1; + if (pid) + exit(0); + + setsid(); + return 0; +}