【发布时间】:2022-07-24 13:44:39
【问题描述】:
如何检查“example.exe”等进程当前是否正在使用 rust 编程语言运行。
【问题讨论】:
如何检查“example.exe”等进程当前是否正在使用 rust 编程语言运行。
【问题讨论】:
你可以使用sysinfo crate,或者特别是processes_by_name
您可以使用函数获取包含 name 的进程的迭代器
fn processes_by_name<'a>(&'a self, name: &'a str) -> Box<dyn Iterator<Item = &'a Process> + 'a>
你可以这样使用它
use sysinfo::{ProcessExt, System, SystemExt};
let s = System::new_all();
for process in s.processes_by_name("htop") {
//check here if this is your process
}
更新:新版本 (0.23.0) 还包含 processes_by_exact_name
它返回一个迭代器给具有确切给定名称的进程 你可以这样使用它
use sysinfo::{ProcessExt, System, SystemExt};
let s = System::new_all();
for process in s.processes_by_exact_name("htop") {
//Your code goes here
}
【讨论】:
get_process_by_name 的结构 sysinfo::System 的方法