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);