From 35ad80dc1300d3fc92e2de7bb8d5d6a11a5ebf90 Mon Sep 17 00:00:00 2001 From: gaofei Date: Wed, 15 Jan 2025 10:51:23 +0800 Subject: [PATCH] Fix: start process on windows --- src/commands/start.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/commands/start.rs b/src/commands/start.rs index 1bb5f98..f011af5 100644 --- a/src/commands/start.rs +++ b/src/commands/start.rs @@ -102,6 +102,12 @@ pub fn start_process( .stdout(Stdio::from(stdout_log)) .stderr(Stdio::from(stderr_log)); + #[cfg(windows)] + { + use std::os::windows::process::CommandExt; + cmd.creation_flags(0x00000008 | 0x00000200); // CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS + } + match cmd.spawn() { Ok(child) => { let pid = child.id(); @@ -152,6 +158,12 @@ pub fn start_process( .stdout(Stdio::from(stdout_log)) .stderr(Stdio::from(stderr_log)); + #[cfg(windows)] + { + use std::os::windows::process::CommandExt; + cmd.creation_flags(0x00000008 | 0x00000200); // CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS + } + match cmd.spawn() { Ok(child) => { let pid = child.id(); @@ -205,6 +217,12 @@ fn start_existing_process(process: &PmrProcessInfo) -> io::Result<()> { .stdout(Stdio::from(stdout_log)) .stderr(Stdio::from(stderr_log)); + #[cfg(windows)] + { + use std::os::windows::process::CommandExt; + cmd.creation_flags(0x00000008 | 0x00000200); // CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS + } + match cmd.spawn() { Ok(child) => { let pid = child.id();