blob: ea43b0ebbfac5964ec5fe9082581ea2adf8251ec [file] [log] [blame] [edit]
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::<libc::pid_t>() {
if let Err(err) = watch_pid(npid) {
println!("{:?}", err);
}
}
} else {
println!("Usage: cargo run --example pid <pid>");
}
}