static void daemonize() { chdir("/"); nullfd(0, O_RDONLY); nullfd(1, O_WRONLY); nullfd(2, O_WRONLY); umask(0); dfork(); setsid(); dfork(); }
static void daemonize() { int r; r = chdir("/"); if (r) return twarn("chdir"); nullfd(0, O_RDONLY); nullfd(1, O_WRONLY); nullfd(2, O_WRONLY); umask(0); dfork(); setsid(); dfork(); }
int dfork_fn(pid_t pid, void *(*fn)(void*), void *data) { int rc = dfork(pid); if (rc < 0) return rc; ; return 0; }