wait_parent/
lib.rs

1use std::process::ExitStatus;
2
3pub fn wait_parent() -> Option<ExitStatus> {
4    let mut system = sysinfo::System::new();
5    let current_pid = sysinfo::get_current_pid().unwrap();
6    system.refresh_processes_specifics(
7        sysinfo::ProcessesToUpdate::Some(&[current_pid]),
8        false,
9        sysinfo::ProcessRefreshKind::nothing(),
10    );
11    let parent_pid = system.process(current_pid).unwrap().parent().unwrap();
12    system.refresh_processes_specifics(
13        sysinfo::ProcessesToUpdate::Some(&[parent_pid]),
14        false,
15        sysinfo::ProcessRefreshKind::nothing(),
16    );
17    match system.process(parent_pid) {
18        Some(parent) => parent.wait(),
19        None => None,
20    }
21}
22
23#[cfg(test)]
24mod tests {
25    use super::*;
26}