fork
Library for creating a new process detached from the controling terminal (daemon) using the fork and setsid syscalls.
Why?
- daemon(3) has been
deprecated in MacOSX 10.5, by using
fork
andsetsid
new methods could be created to achieve the same goal, inspired by "nix - Rust friendly bindings to *nix APIs crate". - Minimal library to daemonize, fork, double-fork a process
- Learn Rust :crab:
Example:
use ;
use ;
If using daemon(false, false)
,it will chdir
to /
and close the standard
input, standard output, and standard error file descriptors.
$ ps -axo ppid,pid,pgid,sess,tty,tpgid,stat,uid,%mem,%cpu,command, | egrep "fork|sleep|PID"
PPID PID PGID SESS TTY TPGID STAT UID %MEM %CPU COMMAND
1 48738 48737 0 ?? 0 S 501 0.0 0.0 target/debug/fork
48738 48753 48737 0 ?? 0 S 501 0.0 0.0 sleep 300