[−][src]Function palaver::process::fork
pub fn fork() -> Result<ForkResult, ()>
A Rust fork wrapper that uses process descriptors (pdfork) on FreeBSD and normal fork elsewhere.
Process descriptors are like file descriptors but for processes:
- they are immune to PID race conditions (they track the exact process in the kernel);
- they work in the Capsicum capability mode sandbox.
extern crate libc; extern crate palaver; use palaver::process::*; match fork().unwrap() { ForkResult::Parent(child_proc) => { // do stuff // you can access child_proc.child_pid on any platform // you can also access child_proc.child_pd on FreeBSD if !child_proc.signal(libc::SIGTERM) { panic!("sigterm"); } }, ForkResult::Child => { // do stuff } }