server-manager
2025年8月22日大约 1 分钟server-managerservermanager
server-manager 是一个用于管理服务器进程的 Rust 库。它封装了服务的启动、关闭和后台守护进程模式。用户可以通过自定义设置指定 PID 文件、日志文件路径和其他配置,同时也可以传入自己的异步服务器函数来执行。该库支持同步和异步操作。在 Unix 和 Windows 平台上,它支持后台守护进程。
安装
在项目目录下执行下面的命令,将 server-manager 添加为依赖项:
cargo add server-manager
使用
use server_manager::*;
use std::fs;
use std::time::Duration;
let pid_file: String = "./process/test_pid.pid".to_string();
let _ = fs::remove_file(&pid_file);
let server = || async {
tokio::time::sleep(Duration::from_secs(1)).await;
};
let mut manager: ServerManager = ServerManager::new();
manager
.set_pid_file(&pid_file)
.set_start_hook(|| async {
println!("Before start daemon hook executed");
})
.set_server_hook(server)
.set_stop_hook(|| async {
println!("Before stop hook executed");
});
let res: ServerManagerResult = manager.start_daemon().await;
println!("start_daemon {:?}", res);
let res: ServerManagerResult = manager.stop().await;
println!("stop {:?}", res);
manager.start().await;
let _ = fs::remove_file(&pid_file);
许可证
本项目遵循 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
贡献
欢迎贡献!请提交问题或拉取请求。
联系方式
如有任何疑问,请通过 [email protected] 与作者联系。