【问题标题】:Checking if a Process is Currently running by name in rust检查进程当前是否在 rust 中按名称运行
【发布时间】:2022-07-24 13:44:39
【问题描述】:

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

【问题讨论】:

    标签: rust process


    【解决方案1】:

    你可以使用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 的方法
    • 适用于 windows 吗?
    • 是的 @Mintybits 它适用于 Android、iOS、Linux、macOS、Raspberry Pi 和 Windows
    • 感谢@FrancisGagné,根据新版本更新
    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    相关资源
    最近更新 更多