fn main() {
#[cfg(unix)]
unix::main();
}
#[cfg(unix)]
mod unix {
extern crate daemonize2;
use std::fs::File;
use self::daemonize2::Daemonize;
pub fn main() {
let stdout = File::create("/tmp/daemon.out").unwrap();
let stderr = File::create("/tmp/daemon.err").unwrap();
let mut daemonize = Daemonize::new();
daemonize = daemonize
.pid_file("/tmp/test.pid")
.chown_pid_file_user("nobody")
.chown_pid_file_group("daemon")
.working_directory("/tmp");
daemonize = daemonize.user("nobody").group("daemon").group(2);
daemonize = daemonize.umask(0o777);
daemonize = daemonize.stdout(stdout).stderr(stderr);
let daemonize = daemonize.privileged_action(|| "Executed before drop privileges");
match unsafe { daemonize.start() } {
Ok(_) => println!("Success, daemonized"),
Err(e) => eprintln!("Error, {}", e),
}
}
}