diff --git a/libs/basic/src/exec_util.rs b/libs/basic/src/exec_util.rs index f1dc20cd44deaa3d9c3fce7213a2dbeb687f53e5..e27c4d6201bdb007087b02a90c0069247216d136 100644 --- a/libs/basic/src/exec_util.rs +++ b/libs/basic/src/exec_util.rs @@ -18,7 +18,9 @@ use std::{fs, os::unix::prelude::PermissionsExt, path::PathBuf, process::Command /// pub fn execute_directories(directories: Vec<&str>) -> std::io::Result<()> { match unsafe { unistd::fork() } { - Ok(unistd::ForkResult::Child) => do_execute(directories), + Ok(unistd::ForkResult::Child) => { + std::process::exit(do_execute(directories).map_or(1, |_| 0)) + } Ok(unistd::ForkResult::Parent { child }) => match nix::sys::wait::waitpid(child, None) { Ok(_) => Ok(()), Err(err) => Err(std::io::Error::from(err)),