【问题标题】:Get external process ID by name按名称获取外部进程 ID
【发布时间】:2022-01-12 02:30:31
【问题描述】:

如何通过名称获取另一个进程的进程 ID?

我在 Windows 11 上。我知道 std::process:id 获取应用程序的 PID。

【问题讨论】:

  • 请尝试 get_process_by_namesysinfo crate。
  • 这是否也适用于 MacO?
  • 是的,我确认它可以在我的 MacOS 上运行。请注意,它返回以给定名称开头的进程列表。 pid 是 Process 结构的字段之一。

标签: rust process pid


【解决方案1】:

sysinfo crate 的get_process_by_name 函数可用于获取以给定名称开头的进程。 pid 是Process 的字段之一。

use sysinfo::SystemExt;

fn main() {
    let mut system = sysinfo::System::new();
    system.refresh_all();

    for p in system.get_process_by_name("docker") {
        println!("{}:{}", p.pid, p.name);
    }
}

使用get_process_list 函数是另一种选择。

let ps = system.get_process_list().iter().filter(|(_, p)| p.name.starts_with("docker"));

for (pid, p) in ps {
    println!("{}:{}", pid, p.name);
}

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多