#freebsd #fork #system #file-descriptor #capsicum

pdfork

在FreeBSD上使用进程描述符(pdfork)进行fork包装,在其他地方使用常规fork

2个版本

使用旧的Rust 2015

0.1.1 2022年10月2日
0.1.0 2018年6月9日

#970Unix APIs

无授权协议

5KB
58

unlicense crates.io

pdfork

一个Rust fork包装器,在FreeBSD上使用进程描述符(pdfork),在其他地方使用常规fork。

进程描述符类似于文件描述符,但用于进程

  • 它们对PID竞争条件免疫(它们在内核中跟踪确切的过程);
  • 它们在Capsicum能力模式沙箱中工作。
extern crate libc;
extern crate pdfork;
use pdfork::*;

match fork() {
    ForkResult::Fail => panic!("fork"),
    ForkResult::Parent(child_proc) => {
        // do stuff
        // you can access child_proc.child_pid on any platform
        // you can also access child_proc.child_pd on FreeBSD
        if !child_proc.signal(libc::SIGTERM) {
            panic!("sigterm");
        }
    },
    ForkResult::Child => {
        // do stuff
    }
}

贡献

通过参与这个项目,您同意遵守贡献者行为准则

贡献者名单可在GitHub上找到.

许可证

这是免费且不受限制的软件,已发布到公共领域。
有关更多信息,请参阅UNLICENSE文件或unlicense.org

依赖项

~43KB