#processes #manipulating #helper #querying #proc #process-id #ctl

bin+lib proc-ctl

A helper library for querying and manipulating processes

5 unstable releases

new 0.3.0 Apr 12, 2024
0.2.1 May 3, 2023
0.2.0 May 2, 2023
0.1.1 May 2, 2023
0.1.0 May 2, 2023

#2 in #ctl

MPL-2.0 license

18KB
351 lines

proc-ctl

A helper library for querying and manipulating processes.

Find what port a process is using

use proc_ctl::PortQuery;

let query = PortQuery::new()
    .tcp_only()
    .ip_v4_only()
    .process_id(55932) // Get a process ID from somewhere
    .expect_min_num_ports(1);

query.execute().unwrap();

Find processes by name

use proc_ctl::{ProcCtlResult, ProcQuery};

fn main() -> ProcCtlResult<()> {

    let query = ProcQuery::new()
        .process_name("firefox");

    let processes = query.list_processes()?;
    Ok(())
}

Find the children of a given process

use proc_ctl::{ProcCtlResult, ProcQuery};

fn main() -> ProcCtlResult<()> {
    let query = ProcQuery::new()
        .process_id(55932) // Get a process ID from somewhere
        .expect_min_num_children(1);

    query.children()?;
    Ok(())
}

Dependencies

~1–30MB
~413K SLoC