/* pending.c - reusable stuff awaiting review | |
* | |
* new lib entries for stuff in toys/pending | |
*/ | |
#include "toys.h" | |
void daemonize(void) | |
{ | |
int fd = open("/dev/null", O_RDWR); | |
if (fd < 0) fd = xcreate("/", O_RDONLY, 0666); | |
pid_t pid = fork(); | |
if (pid < 0) perror_exit("DAEMON: failed to fork"); | |
if (pid) exit(EXIT_SUCCESS); | |
setsid(); | |
dup2(fd, 0); | |
dup2(fd, 1); | |
dup2(fd, 2); | |
if (fd > 2) close(fd); | |
} |