1 个不稳定版本
使用旧的Rust 2015
0.3.0 | 2019年3月26日 |
---|
#3 in #daemons
22KB
477 代码行(不包括注释)
cf-daemonize
此项目包含对daemonize
crate的分支,用于Cloudflare的boringtun
。我们希望将更改上游化,但原始项目目前似乎不活跃。
除非您依赖于此分支的特定额外功能,否则我们建议您使用原始的daemonize
crate。
lib.rs
:
daemonize是一个用于编写系统守护进程的库。受Python库thesharp/daemonize的启发。
仓库位于https://github.com/knsd/daemonize/。
使用示例
extern crate daemonize;
use std::fs::File;
use daemonize::Daemonize;
fn main() {
let stdout = File::create("/tmp/daemon.out").unwrap();
let stderr = File::create("/tmp/daemon.err").unwrap();
let daemonize = Daemonize::new()
.pid_file("/tmp/test.pid") // Every method except `new` and `start`
.chown_pid_file(true) // is optional, see `Daemonize` documentation
.working_directory("/tmp") // for default behaviour.
.user("nobody")
.group("daemon") // Group name
.group(2) // or group id.
.umask(0o777) // Set umask, `0o027` by default.
.stdout(stdout) // Redirect stdout to `/tmp/daemon.out`.
.stderr(stderr) // Redirect stderr to `/tmp/daemon.err`.
.privileged_action(|| "Executed before drop privileges");
match daemonize.start() {
Ok(_) => println!("Success, daemonized"),
Err(e) => eprintln!("Error, {}", e),
}
}
依赖项
~81KB