possibly fixed the auto updater, and fixed the node processes closing

This commit is contained in:
2026-09-01 19:39:27 -07:00
parent 414ef73e1d
commit 769c0dadcd
5 changed files with 90 additions and 37 deletions

View File

@@ -50,6 +50,15 @@ fn clean_path(path: &std::path::Path) -> String {
}
fn kill_child_process(child: &mut Child) {
#[cfg(windows)]
{
use std::os::windows::process::CommandExt;
const CREATE_NO_WINDOW: u32 = 0x08000000;
let _ = Command::new("taskkill")
.args(&["/F", "/T", "/PID", &child.id().to_string()])
.creation_flags(CREATE_NO_WINDOW)
.output();
}
let _ = child.kill();
let _ = child.wait();
}
@@ -482,6 +491,30 @@ fn open_new_window(app: tauri::AppHandle, url: String) -> Result<(), String> {
}
}
#[tauri::command]
async fn kill_orphans() -> Result<(), String> {
debug_log("[KILL] User requested orphan process kill");
#[cfg(windows)]
{
use std::os::windows::process::CommandExt;
const CREATE_NO_WINDOW: u32 = 0x08000000;
let _ = std::process::Command::new("taskkill")
.args(&["/F", "/T", "/IM", "node.exe"])
.creation_flags(CREATE_NO_WINDOW)
.output();
}
#[cfg(not(windows))]
{
let _ = std::process::Command::new("pkill")
.args(&["-9", "-f", "node"])
.output();
}
Ok(())
}
#[tauri::command]
fn get_logo_base64(app: tauri::AppHandle) -> Result<String, String> {
use std::io::Read;
@@ -528,7 +561,8 @@ fn main() {
win_close,
win_drag,
open_new_window,
get_logo_base64
get_logo_base64,
kill_orphans
])
.manage(NodeServices(Mutex::new(None)))
.setup(|app| {
@@ -566,6 +600,7 @@ fn main() {
.current_dir(&root_dir)
.env("APPDATA_PATH", &app_data_str)
.env("NODE_EXE", &node_bin)
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.stderr(Stdio::piped());