#proc #info #linux #sys

proc_getter

简化从/proc/*中检索信息的过程

3个版本

0.0.3 2019年11月24日
0.0.2 2019年11月18日
0.0.1 2019年11月16日

#45 in #sys

MIT 许可证

83KB
2.5K SLoC

此crate已在crates.io上停止维护。

因为它已被重命名为(lpfs)https://github.com/pearzl/lpfs

您可以在lpfs的proc_getter分支中找到这些代码。


docs.rs crates.io license

此仓库的目标是使从proc文件系统中检索系统信息变得更容易。

示例

use proc_getter::cmdline::*;
use proc_getter::pid::cmdline::*;

fn main() {
    //  /proc/cmdline
    println!("{:?}", cmdline());

    //  /proc/1/cmdline
    println!("{:?}", cmdline_of(1));
}

最小要求

rust 2018 (rustc 1.31.0 +)

支持

我尽量使它支持具有3.+内核版本的任何发行版。

不同版本内核和发行版之间的proc文件系统并不相同。某些代码可能无法在您的系统上运行。

因此,几乎所有函数都返回Result,因为指定的文件可能不存在于您的系统中。可能存在指定的文件,但仍然返回Err。我将这种情况视为错误,并应该修复,欢迎提交PR和issue。

大多数列出的文件此处应该得到支持。详细信息如下。

进程

顶级文件

/proc/*

文件 状态 文件 状态 文件 状态
buddyinfo cmdline consoles
cpuinfo crypto devices
diskstates dma execdomains
fb filesystems interrupts
iomem ioports kcore
kmsg loadavg locks
mdstat meminfo misc
modules mounts mtrr
partitions slabinfo stat
swaps uptime version
self sysrq-trigger

进程目录

/proc/${pid}/*

文件 状态 文件 状态 文件 状态
cmdline cwd environ
exe fd maps
root stat statm
状态

其他子目录

下表列出了已实现的文件。

目录 文件
acpi wakeup
driver rtc
net arp, dev, dev_mcast, iptables_name, netstat
route

注意:尚未完全测试。

LICENSE

MIT

无运行时依赖