Function procfs::process::all_processes

source ·
pub fn all_processes() -> ProcResult<ProcessesIter>
Expand description

Return a iterator of all processes

If a process can’t be constructed for some reason, it will be returned as an Err(ProcError)

See also some important docs on the ProcessesIter struct.

Error handling example

let all_processes: Vec<Process> = procfs::process::all_processes()
.expect("Can't read /proc")
.filter_map(|p| match p {
    Ok(p) => Some(p),                                                // happy path
    Err(e) => match e {
        procfs::ProcError::NotFound(_) => None,                      // process vanished during iteration, ignore it
        procfs::ProcError::Io(e, path) => None,                      // can match on path to decide if we can continue
        x => {
            println!("Can't read process due to error {x:?}"); // some unknown error
            None
        }
    },
})
.collect();