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();