Example of daemonizing in Rust

use daemonize::Daemonize;

    fn main() {
        let daemonize = Daemonize::new()
            .pid_file("/tmp/my_daemon.pid") // Optional: Write PID to file
            .chown_pid_file(true)          // Optional: Change ownership
            .working_directory("/tmp")     // Optional: Set working directory
            .privileged_action(|| "Executed before drop privileges");

        match daemonize.start() {
            Ok(_) => {
                // Daemon logic goes here
                println!("Daemon started successfully!");
                loop {
                    // Do daemon work
                    std::thread::sleep(std::time::Duration::from_secs(5));
                }
            },
            Err(e) => eprintln!("Error, {}", e),
        }
    }