一个用 Rust 编写的 uof-status 客户端。
可以输入以下命令查看帮助
ustatc --help
警告:URL 最后不要带有
/
- 配置文件格式示例:
url = "http://127.0.0.1:4044"
server_id = 1
server_token = "dxfhqtzfrrf5fuyc"
time = 60
online = true
- 此处不包含服务端配置方法,服务端配置请看uof-status
-
chmod +x ./ustatc
(对于 Linux) -
新建服务器
./ustatc put --url <服务端URL> --token <Api.global_token> --name <名称> --description <描述> --mkconfig ./status.toml
- 运行(使用配置文件)
./ustatc
- 在完成"快捷的使用方式"的步骤且正常运行后,Linux 用户可以继续下面的步骤设置为系统服务
在 MS Windows 运行,这里不提供设置为服务的方法,可以尝试使用这个项目:Windows Service Wrapper
- 安装 uof-status 到合适的位置
mkdir -p ~/.local/bin
mkdir -p ~/.config
mkdir -p ~/.config/systemd/user/
mv ./ustatc ~/.local/bin/ustatc
mv ./status.toml ~/.config/status.toml
- 添加 Systemd 配置文件
- 编辑
~/.config/systemd/user/status.service
,写入以下内容
建议将$HOME替换为用户家目录路径
[Unit]
Description=A client of uof-status written in rust.
[Service]
ExecStart=$HOME/.local/bin/ustatc --config $HOME/.config/status.toml
[Install]
WantedBy=multi-user.target
- 启用服务
systemctl daemon-reload --user
systemctl enable --now --user status.service
以上操作会使服务在用户登录时启用,用户退出时关闭,若要随系统运行,请运行
sudo loginctl enable-linger `whoami`
- 遇到带有
RUST_BACKTRACE=1
,panic
的错误输出
一般原因:无法发送请求
解决方法:检查 URL 的域名/IP 和协议是否正确,DNS 是否正常
如果无法解决,可以将环境变量设置为
RUST_BACKTRACE=1
后运行,将输出提交到 issue
reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) }
一般原因:无法以处理返回信息为 json
解决方法:检查 URL 的路径是否正确,URL 后面不要带有/
如果无法解决,可以提交错误的输出到 issue
{"reason": String("<此处输出可能不同,一般包含故障原因>"), "success": Bool(false)}
一般原因:提供的 token 等信息错误
解决方法:检查 token 等信息是否正确
注意:
不要混淆Api.global_token
与Server token
第一个是put
,drop
这些管理操作使用的 Token,以 md5
储存在服务端配置文件中(注意服务端配置文件中是 md5 不是明文,此处需要输入明文)
第二个是status
上传状态使用的,在新建服务器后会生成
- 其他错误
上传 issue,包含输出信息
git clone https://github.com/University-Of-Fool/uof-status-client-rust.git && cd uof-status-client-rust/
cargo build --release