#daemon #process #unix

yad

Yet Another Daemonizer is a daemonizing crate to easily, simply, and correctly create legacy daemons

2 releases

0.1.1 Oct 22, 2021
0.1.0 Feb 15, 2021

#142 in Unix APIs

MIT license

27KB
454 lines

Yet Another Daemonizer

Github MIT licensed Cargo Documentation

Yet Another Daemonizer is a daemonizing crate to easily, simply, and correctly create legacy daemons.

This crate focuses on manually creating a background process which is not managed by a supervisor such as systemd or launchd. It strives to follow all the best practices to correctly daemonize a process.

Example

use yad::options::Stdio;

match yad::with_options()
    .stdin(Stdio::Null)
    .stderr(Stdio::Null)
    .stdout(Stdio::output("/var/log/daemon.log"))
    .daemonize()
{
    Ok(_) => println!("I'm a daemon"),
    Err(err) => eprintln!("Failed to launch daemon: {}", err),
}

References

Dependencies

~1.4–2MB
~42K SLoC

sa