blob: 21eea63df9056c9e474dc6f9f812cf6c1ba5cdf0 [file] [log] [blame]
use std::io::{Error, Result};
use crate::{AsyncCommandGroup, AsyncGroupChild};
use nix::unistd::setsid;
use tokio::process::Command;
#[async_trait::async_trait]
impl AsyncCommandGroup for Command {
fn group_spawn(&mut self) -> Result<AsyncGroupChild> {
unsafe {
self.pre_exec(|| setsid().map_err(Error::from).map(|_| ()));
}
self.spawn().map(AsyncGroupChild::new)
}
}