1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use std::{ io::{Error, Result}, os::unix::process::CommandExt, process::Command, }; use crate::{CommandGroup, GroupChild}; use nix::unistd::setsid; impl CommandGroup for Command { fn group_spawn(&mut self) -> Result<GroupChild> { unsafe { self.pre_exec(|| setsid().map_err(Error::from).map(|_| ())); } self.spawn().map(GroupChild::new) } }