1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use crate::Error; use sysinfo; pub use sysinfo::{Process, ProcessExt, Signal, System, SystemExt}; pub fn get_parent_process(system: &mut sysinfo::System) -> Result<&Process, Error> { let pid = sysinfo::get_current_pid().unwrap(); system.refresh_process(pid); let current_process = system .get_process(pid) .ok_or(Error::ParentProcess)?; let parent_pid = current_process.parent().ok_or(Error::ParentPID)?; let parent_process = system .get_process(parent_pid) .ok_or(Error::ParentProcess)?; println!("{}", pid); Ok(parent_process) }