#process #process-id #querying #find #ctl #proc #port-query

bin+lib proc-ctl

A helper library for querying and manipulating processes

7 unstable releases

0.4.1 Feb 27, 2025
0.4.0 Nov 6, 2024
0.3.0 Apr 12, 2024
0.2.1 May 3, 2023
0.1.1 May 2, 2023

#252 in Unix APIs

Download history 4/week @ 2024-11-13 3/week @ 2024-11-20 2/week @ 2024-12-04 11/week @ 2024-12-11 8/week @ 2024-12-18 4/week @ 2025-01-29 21/week @ 2025-02-12 152/week @ 2025-02-26

174 downloads per month

MPL-2.0 license

33KB
762 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

~0.2–41MB
~657K SLoC