Browse Source

fix(desktop): avoid sidecar health-check timeout on shell startup (#13925)

Co-authored-by: Brendan Allan <[email protected]>
Chris Yang 1 month ago
parent
commit
d055c1cad6
1 changed files with 7 additions and 3 deletions
  1. 7 3
      packages/desktop/src-tauri/src/cli.rs

+ 7 - 3
packages/desktop/src-tauri/src/cli.rs

@@ -308,7 +308,7 @@ pub fn spawn_command(
         };
 
         let mut cmd = Command::new(shell);
-        cmd.args(["-il", "-c", &line]);
+        cmd.args(["-l", "-c", &line]);
 
         for (key, value) in envs {
             cmd.env(key, value);
@@ -363,6 +363,7 @@ pub fn spawn_command(
     }
 
     tokio::spawn(async move {
+        let mut kill_open = true;
         let status = loop {
             match child.try_wait() {
                 Ok(Some(status)) => break Ok(status),
@@ -371,8 +372,11 @@ pub fn spawn_command(
             }
 
             tokio::select! {
-                _ = kill_rx.recv() => {
-                    let _ = child.start_kill();
+                msg = kill_rx.recv(), if kill_open => {
+                    if msg.is_some() {
+                        let _ = child.start_kill();
+                    }
+                    kill_open = false;
                 }
                 _ = tokio::time::sleep(Duration::from_millis(100)) => {}
             }