diff --git a/crates/eww/src/server.rs b/crates/eww/src/server.rs index be4447d..9a6abd1 100644 --- a/crates/eww/src/server.rs +++ b/crates/eww/src/server.rs @@ -181,7 +181,13 @@ pub enum ForkResult { fn do_detach(log_file_path: impl AsRef) -> Result { // detach from terminal match unsafe { nix::unistd::fork()? } { - nix::unistd::ForkResult::Child => {} + nix::unistd::ForkResult::Child => { + nix::unistd::setsid()?; + match unsafe {nix::unistd::fork()? + }{ + nix::unistd::ForkResult::Parent { .. } => std::process::exit(0), + nix::unistd::ForkResult::Child => {} + }} nix::unistd::ForkResult::Parent { .. } => { return Ok(ForkResult::Parent); }