Because libc's daemon() forks and then exits in the parent, only the thread that calls daemon() will survive in the child. Usually this means that one would only want to call daemon() from a single-threaded process. I am not certain whether it makes nix::unistd::daemon unsafe, but it seems like noting it in some way in the documentation would be a good idea.