1.8 KiB
1.8 KiB
Paw GUi
Paw 的系统服务及其安装/卸载器
此处 install.rs 和 uninstall.rs 中使用的 Command 都是同步版本,而其他属于服务部分的Command都是异步版本。
同理,install.rs 和 uninstall.rs 中使用的日志均为直接 println!,而服务部分依赖于 tracing 输出到标准输出流,从而被操作系统的服务日志系统记录(Windows下输出到文件)。因此,三个系统的服务日志查看方式如下:
- Linux:
sudo journalctl -u paw-system-service其中具体名称由common中的SERVICE_NAME决定 - macOS:
/var/log/com.paw.service.log其中具体名称由common中的SERVICE_MACOS_NAME决定 - Windows: 文件在
软件所在目录/logs/下
项目结构
- src/
- main.rs 系统服务的入口文件
- api.rs 系统服务的API接口
- installer/ 系统服务安装/卸载器
- install.rs 系统服务安装器
- uninstall.rs 系统服务卸载器
- template/ 系统服务模板
- helper.plist macOS 的系统服务
- systemctl.txt Linux 的系统服务
第三方库依赖
- serde & serde_json: 序列化/反序列化框架
- anyhow 简化错误处理
- tokio 异步运行时,也包含了很多异步实用工具
- axum HTTP服务器
- windows-service Windows 系统服务控制框架,用于安装、卸载、修改系统服务
- tracing tracing-subscriber 记录系统服务的日志
- tracing-appender 将日志输出到文件,仅 Windows 使用