检查进程当前是否正在 Rust 中按名称运行

Min*_*its 4 process rust

我如何检查“example.exe”等进程当前是否正在使用 Rust 编程语言运行。

Sau*_*Rao 9

您可以使用sysinfo crate,或者特别是processes_by_name

您可以使用该函数获取包含名称的进程的迭代器

fn processes_by_name<'a>(&'a self, name: &'a str) -> Box<dyn Iterator<Item = &'a Process> + 'a>
Run Code Online (Sandbox Code Playgroud)

你可以这样使用它

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
}
Run Code Online (Sandbox Code Playgroud)

更新:新版本(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
}
Run Code Online (Sandbox Code Playgroud)