在Rust中,通过进程名检查进程是否正在运行

3

如何使用Rust编程语言检查进程(例如“example.exe”)是否正在运行。

1个回答

8

您可以使用 sysinfo crate,或者特别使用processes_by_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
}

1
еҪ“еүҚдҪңз”Ёеҹҹдёӯзҡ„з»“жһ„дҪ“sysinfo::SystemжІЎжңүеҗҚдёәget_process_by_nameзҡ„ж–№жі•гҖӮ - Mintybits
它是为Windows设计的吗? - Mintybits
是的,@Mintybits,它可用于Android、iOS、Linux、macOS、Raspberry Pi和Windows。 - Saurav Rao
感谢@FrancisGagné,根据新版本更新。 - Saurav Rao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接