28 次发布
0.14.8 | 2024年4月24日 |
---|---|
0.14.6 | 2024年3月13日 |
0.14.2 | 2023年9月18日 |
0.14.0 | 2023年7月6日 |
0.1.0 | 2016年8月22日 |
#18 in Unix APIs
51,307 monthly downloads
用于 109 个 crates (17 直接)
110KB
2K SLoC
libproc-rs
这是一个用于获取 Mac OS X 和 Linux 上运行进程信息的库。
将其添加到项目的 Cargo.toml
libproc = "0.14.4"
然后在代码中使用它
use libproc::libproc::proc_pid;
match proc_pid::pidpath(pid) {
Ok(path) => println!("PID {}: has path {}", pid, path),
Err(err) => writeln!(&mut std::io::stderr(), "Error: {}", err).unwrap()
}
您可以在 crates.io 上找到最新的发布版本
您可以在 docs.rs 上找到最新版本的浏览文档。
注意: master
分支(代码和文档)可能与新版本之前的文档不同。
最小 rust 版本
当前所需的最小 rust 版本是:1.74.1,并在 CI 中进行了测试,必须通过。
测试矩阵
Github Actions CI 矩阵是
rust 版本
stable
(必须通过)beta
(必须通过)1.74.1
(目前支持的最低 rust 版本)(必须通过)nightly
(允许失败)
在以下平台上
ubuntu-latest
macos-11
(Big Sur)macos-12
(Monterey)macos-13
(Ventura)macos-14
(Sonoma)
Mac OS X 版本
libproc 在 10.9(Mavericks)中添加了调用,它们位于名为 "macosx_10_9" 的 rust "功能" 开关下。默认构建包括 "macosx_10_9" 功能。
要为 Mac OS 10.9 之前的版本构建,请通过传递 --no-default-features
给 cargo 来禁用默认功能。
示例
包含两个简单示例,以展示 libproc-rs 的工作原理。
procinfo
接受 PID 作为可选参数(如果没有提供,则使用自己的 pid)并返回关于进程的信息dmesg
是使用 libproc-rs 实现的 dmesg 的一个版本。
可以这样运行: sudo cargo run --example procinfo
或 sudo cargo run --example dmesg
贡献
欢迎您分支此存储库并提交 pull request,或提交 issue。
在开源软件资金方面进行实验
我正在通过 RadWorks Foundation 的 Drips 项目 探索开源软件资金的思路。
此项目在 Drips 这里
所需输入
- 欢迎提出关于 API、模块重组和跨平台抽象的建议。
- 如何进行错误报告?定义自己的新错误类型,还是保持简单使用字符串?
- 当有道理的时候,希望返回 Path/PathBuf 而不是 String 吗?
TODO
请参阅 问题列表。我在需要帮助的地方添加了 "help wanted" 标签。
- 查看在 Linux 上可以作为起点实现类似方法的列表
- 在 Mac OS X 上完成 API - 解决所有 Mac OS X / Darwin 版本的问题....
- 添加更多文档(包括带有文档测试的示例)
- 添加自己的自定义错误类型并实现 From::from 以简化客户端中多个错误类型的报告
本地构建和测试
如果您今天感觉运气不错,可以从 make
开始。
cargo test
将按常规构建和测试。
然而,由于某些函数需要以 root
权限运行,CI 测试也是以 root
运行的。因此,在本地开发时,最好使用 sudo cargo test
。
[!NOTE] 这可能会在您在 cargo test
和 sudo cargo test
之间切换时遇到权限问题。要修复此问题,请运行 sudo cargo clean
然后按照您喜欢的构建或测试。
为了确保在作为 root
或不作为 root
运行时测试都能通过,一些测试需要检查它们在运行时是否是 root
(使用我们自己的 am_root()
函数很有用)并避免在 非 作为 root
运行时失败。
使用 "act" 运行本地 GH Actions CI 工作流程
如果您在 macos 上开发但想确保在修改代码的同时在 Linux 上代码能构建和测试通过,您可以使用 act 工具在测试矩阵上运行 Github Actions 工作流程。
只需安装 "act"(brew install act
)(如果您还没有,请先安装 docker 并确保守护进程正在运行),然后在命令行中运行 act
。
Macos: clang 检测和头文件查找
较新版本的 bindgen
提高了 clang
及其 macOS 头文件的检测能力。如果您还直接或通过 brew
安装了 llvm/clang,这可能会导致构建失败,显示无法找到 libproc.h
。可以通过设置 CLANG_PATH="/usr/bin/clang"
来解决这个问题,这样 bindgen
就能检测到 Xcode 版本,从而找到正确的头文件。
许可协议
此代码受 MIT 许可协议许可(见 LICENCE)。
依赖项
~0–8.5MB
~70K SLoC