From a6a6d9d0363430ce8783288dbf951bd7fb544743 Mon Sep 17 00:00:00 2001 From: Tunglies Date: Thu, 27 Mar 2025 09:20:15 +0800 Subject: [PATCH] feat: initial and restart core checks service version if available chore: update UPDATELOG.md --- UPDATELOG.md | 10 +++++++--- src-tauri/src/core/core.rs | 14 ++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/UPDATELOG.md b/UPDATELOG.md index d7208e19..3f0f8df6 100644 --- a/UPDATELOG.md +++ b/UPDATELOG.md @@ -2,14 +2,18 @@ #### 已知问题 - 仅在Ubuntu 22.04/24.04,Fedora 41 **Gnome桌面环境** 做过简单测试,不保证其他其他Linux发行版可用,将在未来做进一步适配和调优 + - Win/Mac/Linux 托盘图标缓存机制问题,无法正确切换自定义图标。 ### 2.2.3-alpha 相对于 2.2.2 #### 修复了: - 首页“当前代理”因为重复刷新导致的CPU占用过高的问题 -#### 优化 - - 重构了内核管理逻辑,更轻量化和有效的管理内核,提高了性能和稳定性 - - 集中管理应用数据,优化数据获取和刷新逻辑 +#### 新增了: +- ClashVergeRev 从现在开始不再强依赖系统服务和管理权限 + +#### 优化了: + - 重构了后端内核管理逻辑,更轻量化和有效的管理内核,提高了性能和稳定性 + - 前端统一刷新应用数据,优化数据获取和刷新逻辑 ## v2.2.2 diff --git a/src-tauri/src/core/core.rs b/src-tauri/src/core/core.rs index 256c62b3..5625e4fc 100644 --- a/src-tauri/src/core/core.rs +++ b/src-tauri/src/core/core.rs @@ -480,10 +480,13 @@ impl CoreManager { pub async fn init(&self) -> Result<()> { logging!(trace, Type::Core, "Initializing core"); - if is_service_available().await.is_ok() { - Self::global().start_core_by_service().await?; + if service::is_service_available().await.is_ok() { + if service::check_service_needs_reinstall().await { + service::reinstall_service().await?; + } + self.start_core_by_service().await?; } else { - Self::global().start_core_by_sidecar().await?; + self.start_core_by_sidecar().await?; } logging!(trace, Type::Core, "Initied core"); #[cfg(target_os = "macos")] @@ -503,7 +506,10 @@ impl CoreManager { /// 启动核心 pub async fn start_core(&self) -> Result<()> { - if is_service_available().await.is_ok() { + if service::is_service_available().await.is_ok() { + if service::check_service_needs_reinstall().await { + service::reinstall_service().await?; + } self.start_core_by_service().await?; } else { self.start_core_by_sidecar().await?;