1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
use sysinfo;

pub use sysinfo::{Process, ProcessExt, Signal, System, SystemExt};

pub fn get_parent_process(system: &mut sysinfo::System) -> crate::Result<&Process> {
  let pid = sysinfo::get_current_pid().unwrap();
  system.refresh_process(pid);
  let current_process = system
    .get_process(pid)
    .ok_or("Could not get current process")?;
  let parent_pid = current_process.parent().ok_or("Could not get parent PID")?;
  let parent_process = system
    .get_process(parent_pid)
    .ok_or("Could not get parent process")?;

  println!("{}", pid);
  Ok(parent_process)
}