INNER CODE UNIT · Rust
generate_sidecar_token
mouseart2025/AI-Reader-V2 · frontend/src-tauri/src/lib.rs:31
fn generate_sidecar_token() -> String {
let bytes: [u8; 32] = rand::thread_rng().gen();
bytes.iter().map(|b| format!("{b:02x}")).collect()
}
/// 结束 sidecar 进程。
/// Windows 上 PyInstaller onefile 是 bootloader + 子进程两层结构,只杀 bootloader
/// 会残留孤儿 Python 进程——它持续占用 sidecar exe,导致升级安装时文件无法替换、
/// 新旧版本混装(issue #71 根因)。taskkill /T 把整棵进程树带走;其他平台直接 kill。
fn kill_sidecar(child: tauri_plugin_shell::process::CommandChild) {
#[cfg(target_os = "windows")]
{
let pid = child.pid().to_string();
let _ = std::process::Command::new("taskkill")
.args(["/PID", pid.as_str(), "/T", "/F"])
.output();
}
#[cfg(not(target_os = "windows"))]