diff --git a/src-tauri/src/cmds.rs b/src-tauri/src/cmds.rs index d4ca78630f514e586158f78ad72f935fa144b3a9..2a42c6b5e6c025515115641e8044609d8d0a6c49 100644 --- a/src-tauri/src/cmds.rs +++ b/src-tauri/src/cmds.rs @@ -263,8 +263,10 @@ pub mod service { #[tauri::command] pub async fn install_service() -> Result<(), String> { - wrap_err!(crate::core::Service::install_service().await)?; - wrap_err!(crate::core::Service::start_service().await) + log_if_err!(crate::core::Service::install_service().await); + let ret = wrap_err!(crate::core::Service::start_service().await); + log::info!("clash verge service started successfully"); + ret } #[tauri::command] diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 8f17febfb132ff69e545767668118c95d5140c66..8abe5e7c7bfe442d009d524d7d67c72bcb029b5a 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -85,8 +85,7 @@ fn main() -> std::io::Result<()> { } "quit" => { resolve::resolve_reset(app_handle); - api::process::kill_children(); - std::process::exit(0); + app_handle.exit(0); } _ => {} }, diff --git a/src-tauri/src/utils/resolve.rs b/src-tauri/src/utils/resolve.rs index a7d690674d47a4e8363957c429324610d822473b..0c259532c7cda0892d657cdb6c7bcc23854b7546 100644 --- a/src-tauri/src/utils/resolve.rs +++ b/src-tauri/src/utils/resolve.rs @@ -22,8 +22,11 @@ pub fn resolve_setup(app: &App) { pub fn resolve_reset(app_handle: &AppHandle) { let core = app_handle.state::<Core>(); let mut sysopt = core.sysopt.lock(); - sysopt.reset_sysproxy(); + drop(sysopt); + + let mut service = core.service.lock(); + crate::log_if_err!(service.stop()); } /// customize the window theme diff --git a/src/components/setting/service-mode.tsx b/src/components/setting/service-mode.tsx index 768af80599441f178fc0d49cb76d8136731c46f2..46f5cbf9d84c5613ba3985f6591785eee6f78464 100644 --- a/src/components/setting/service-mode.tsx +++ b/src/components/setting/service-mode.tsx @@ -41,8 +41,8 @@ const ServiceMode = (props: Props) => { try { await installService(); mutate("checkService"); - Notice.success("Service installed successfully"); onClose(); + Notice.success("Service installed successfully"); } catch (err: any) { mutate("checkService"); onError(err); @@ -56,9 +56,9 @@ const ServiceMode = (props: Props) => { } await uninstallService(); - Notice.success("Service uninstalled successfully"); mutate("checkService"); onClose(); + Notice.success("Service uninstalled successfully"); } catch (err: any) { mutate("checkService"); onError(err);