4 个版本
0.1.3 | 2023 年 11 月 14 日 |
---|---|
0.1.2 | 2023 年 10 月 6 日 |
0.1.1 | 2023 年 10 月 4 日 |
0.1.0 | 2023 年 10 月 3 日 |
1366 在 命令行工具 中
每月 30 次下载
20KB
254 代码行
pid1-rs
pid1 处理库,用于正确处理 PID1 进程的信号和僵尸回收。
本仓库包含两个包
pid1 库使用方法
此库用于简化容器化环境中的 Rust 部署。您可以在容器中使用此 crate 直接代替像 Haskell 的 pid1 或 tini 这样的二进制文件。
您必须确保 launch
方法是您的 main
函数中的第一条语句
use std::time::Duration;
use pid1::Pid1Settings;
fn main() {
Pid1Settings::new()
.enable_log(true)
.timeout(Duration::from_secs(2))
.launch()
.expect("Launch failed");
println!("Hello world");
// Rest of the logic...
}
您还可以在此处查看各种示例用法 这里。 此函数仅适用于 Unix 系统,上述代码在 Windows 中为无操作。
使用 pid1 二进制文件
您可以下载作为 发布版 部分之一的 pid1
二进制文件,并在您的容器中直接使用它。示例
FROM alpine:3.14.2
ADD https://github.com/fpco/pid1-rs/releases/download/v0.1.0/pid1-x86_64-unknown-linux-musl /usr/bin/pid1
RUN chmod +x /usr/bin/pid1
ENTRYPOINT [ "pid1" ]
二进制文件支持的选项
❯ pid1 --help
Usage:
Arguments:
<COMMAND> Process to run
[ARGS]... Arguments to the process
Options:
-w, --workdir <DIR> Specify working direcory
-t, --timeout <TIMEOUT> Timeout (in seconds) to wait for child proess to exit [default: 2]
-v, --verbose Turn on verbose output
-e, --env <ENV> Override environment variables. Can specify multiple times
-u, --user-id <USER_ID> Run command with user ID
-g, --group-id <GROUP_ID> Run command with group ID
-h, --help Print help
开发
测试步骤在 Development.md 中记录。我们只将其部分集成到 CI 中。
依赖项
~3.5MB
~71K SLoC