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}