mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-11-08 19:22:44 +08:00
fix: upgrade mihomo core failed (#5646)
* fix: upgrade mihomo core failed * fix: upgrade core failed when run core by service * fix: app freeze when restart core on windows * deps: bump clash-verge-rev-ipc version lock --------- Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
This commit is contained in:
@@ -2,10 +2,8 @@ use super::{CoreManager, RunningMode};
|
||||
use crate::cmd::StringifyErr as _;
|
||||
use crate::config::{Config, IVerge};
|
||||
use crate::core::handle::Handle;
|
||||
use crate::core::{
|
||||
logger::CLASH_LOGGER,
|
||||
service::{SERVICE_MANAGER, ServiceStatus},
|
||||
};
|
||||
use crate::core::manager::CLASH_LOGGER;
|
||||
use crate::core::service::{SERVICE_MANAGER, ServiceStatus};
|
||||
use anyhow::Result;
|
||||
use clash_verge_logging::{Type, logging};
|
||||
use scopeguard::defer;
|
||||
@@ -44,11 +42,6 @@ impl CoreManager {
|
||||
pub async fn restart_core(&self) -> Result<()> {
|
||||
logging!(info, Type::Core, "Restarting core");
|
||||
self.stop_core().await?;
|
||||
|
||||
if SERVICE_MANAGER.lock().await.init().await.is_ok() {
|
||||
let _ = SERVICE_MANAGER.lock().await.refresh().await;
|
||||
}
|
||||
|
||||
self.start_core().await
|
||||
}
|
||||
|
||||
|
||||
@@ -4,11 +4,15 @@ mod state;
|
||||
|
||||
use anyhow::Result;
|
||||
use arc_swap::{ArcSwap, ArcSwapOption};
|
||||
use clash_verge_logger::AsyncLogger;
|
||||
use once_cell::sync::Lazy;
|
||||
use std::{fmt, sync::Arc, time::Instant};
|
||||
use tauri_plugin_shell::process::CommandChild;
|
||||
|
||||
use crate::singleton;
|
||||
|
||||
pub(crate) static CLASH_LOGGER: Lazy<Arc<AsyncLogger>> = Lazy::new(|| Arc::new(AsyncLogger::new()));
|
||||
|
||||
#[derive(Debug, serde::Serialize, PartialEq, Eq)]
|
||||
pub enum RunningMode {
|
||||
Service,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
use super::{CoreManager, RunningMode};
|
||||
use crate::{
|
||||
AsyncHandler,
|
||||
config::Config,
|
||||
core::{handle, logger::CLASH_LOGGER, service},
|
||||
config::{Config, IClashTemp},
|
||||
core::{handle, manager::CLASH_LOGGER, service},
|
||||
logging,
|
||||
utils::{dirs, init::sidecar_writer},
|
||||
};
|
||||
@@ -39,6 +39,12 @@ impl CoreManager {
|
||||
dirs::path_to_str(&config_dir)?,
|
||||
"-f",
|
||||
dirs::path_to_str(&config_file)?,
|
||||
if cfg!(windows) {
|
||||
"-ext-ctl-pipe"
|
||||
} else {
|
||||
"-ext-ctl-unix"
|
||||
},
|
||||
&IClashTemp::guard_external_controller_ipc(),
|
||||
])
|
||||
.spawn()?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user