use std::env; use std::io::Result; fn watch_pid(pid: libc::pid_t) -> Result<()> { let mut watcher = kqueue::Watcher::new()?; watcher.add_pid( pid, kqueue::EventFilter::EVFILT_PROC, kqueue::FilterFlag::NOTE_EXIT, )?; watcher.watch()?; println!("Watching for events, press Ctrl+C to stop..."); for ev in watcher.iter() { println!("{:?}", ev); } Ok(()) } fn main() { if let Some(pid) = env::args().nth(1) { if let Ok(npid) = pid.parse::() { if let Err(err) = watch_pid(npid) { println!("{:?}", err); } } } else { println!("Usage: cargo run --example pid "); } }