#process #init #cli

pid1

pid1 处理库,用于正确处理 PID1 进程的信号和僵尸回收

2 个版本

0.1.1 2023 年 10 月 4 日
0.1.0 2023 年 10 月 3 日

#2256命令行工具

Download history 354/week @ 2024-03-14 333/week @ 2024-03-21 667/week @ 2024-03-28 321/week @ 2024-04-04 547/week @ 2024-04-11 584/week @ 2024-04-18 625/week @ 2024-04-25 609/week @ 2024-05-02 904/week @ 2024-05-09 804/week @ 2024-05-16 444/week @ 2024-05-23 498/week @ 2024-05-30 408/week @ 2024-06-06 820/week @ 2024-06-13 788/week @ 2024-06-20 599/week @ 2024-06-27

2,703 每月下载量
用于 3 个 crate (2 个直接使用)

MIT 许可证

12KB
160

pid1-rs

Rust

pid1 处理库,用于正确处理 PID1 进程的信号和僵尸回收。

该仓库包含两个包

  • pid1 crate:库,供您的 Rust 应用程序使用。
  • pid1-exe crate:二进制文件,内部使用 pid1 crate 进行容器部署。二进制文件名为 pid1

pid1 库使用方法

此库用于简化容器化环境中的 Rust 部署。您可以直接使用此 crate,而不是在容器中使用像 Haskell 的 pid1tini 这样的二进制文件。

您必须确保 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" ]

开发

测试步骤在 Development.md 中进行了记录。我们仅在 CI 中集成了其中的一部分。

依赖关系

~2.5MB
~54K SLoC