use proc_connector::ProcConnector;
use std::time::Instant;
fn main() {
let conn = ProcConnector::new().expect("failed to create proc connector (try as root)");
let mut buf = vec![0u8; 4096];
println!("listening for process events... (Ctrl+C to stop)");
loop {
match conn.recv(&mut buf) {
Ok(event) => {
let now = humantime_or_iso(Instant::now());
println!("[{now}] {event}");
}
Err(e) => {
eprintln!("recv error: {e}");
break;
}
}
}
}
fn humantime_or_iso(instant: Instant) -> String {
let secs = instant.elapsed().as_secs();
let hours = secs / 3600;
let mins = (secs % 3600) / 60;
let secs = secs % 60;
format!("{:02}:{:02}:{:02}", hours, mins, secs)
}