Expand description
§pals = Processes’ Arguments LiSt
The main API is pals() which returns ProcList if succeeded.
let proc_list = pals::pals().unwrap();§ProcList can be regarded as a list of procs().
let proc_list = pals::pals().unwrap();
let procs = proc_list.procs();The following items can be accessed:
-
pid – Process::pid.
-
ppid – Process::ppid.
-
nul-terminated arguments in one single string – Process::arguments.
-
argument iterator –
Process::argv(). -
parent process –
ProcList::parent_of().
let proc_list = pals::pals().unwrap();
let mut procs = proc_list.procs();
let first = procs.next().unwrap();
println!( "pid:{:?}, ppid:{:?}", first.pid, first.ppid );
println!( "arguments:{}", first.arguments );
println!( "argv:\n{}", first
.argv()
.enumerate()
.fold( String::new(),
|acc,(i,arg)| format!( "{}\narg #{}:{}", acc, i, arg ))
);
println!( "parent's pid:{:?}", proc_list.parent_of( first.pid ));§ProcList can be regarded as a list of Proc trees.
Besides items mentioned above, the following extra items can be accessed:
-
parent nodes –
Proc::parent(). -
all child nodes –
Proc::children().
use pals::{Proc, pals};
pals().map( |proc_list| {
fn assert_ppid_is_parent_pid( proc: Proc ) {
proc.parent()
.map( |parent| assert_eq!( parent.pid, proc.ppid ));
proc.children()
.for_each( |subproc| assert_ppid_is_parent_pid( subproc ));
}
proc_list
.children()
.for_each( |proc| assert_ppid_is_parent_pid( proc ))
}).unwrap();§ProcList can be converted to trees::Forest.
use pals::{Process, pals};
use trees::Forest;
let proc_list = pals().unwrap();
let bfs = proc_list
.bfs()
.map( ToOwned::to_owned ); // &Process -> Process
let forest = Forest::<Process>::from( bfs );§Binary utility
See README.md for more.
Structs§
- Pid
- Process ID.
- Proc
- A process agent by which pid,ppid,arguments/argv, parent and child processes can be accessed.
- Proc
List - Process list. It can be viewed as a list of process or a list of process trees.
- Process
- Process holding pid, ppid, command name and arguments of one or more nul-terminated argument(s).