独立监控核心和模块
This commit is contained in:
@@ -3,6 +3,7 @@ use tauri::Manager;
|
||||
mod download_engine;
|
||||
mod logger;
|
||||
mod mihomo_manager;
|
||||
mod monitor_kernel;
|
||||
mod process_manager;
|
||||
|
||||
use download_engine::{
|
||||
@@ -21,6 +22,10 @@ use mihomo_manager::{
|
||||
proxy_select_proxy, proxy_set_system_proxy, proxy_start, proxy_status, proxy_stop,
|
||||
proxy_test_delay, proxy_update_kernel, proxy_update_profile, proxy_version, MihomoManager,
|
||||
};
|
||||
use monitor_kernel::{
|
||||
monitor_get_snapshot, monitor_get_status, monitor_kernel_info, monitor_start, monitor_status,
|
||||
monitor_stop, MonitorKernel,
|
||||
};
|
||||
use process_manager::{
|
||||
get_all_process_status, get_process_status, start_monitoring_thread, start_process,
|
||||
stop_all_processes, stop_process, ProcessManager,
|
||||
@@ -96,6 +101,12 @@ pub fn run() {
|
||||
proxy_set_system_proxy,
|
||||
proxy_clear_system_proxy,
|
||||
proxy_get_system_proxy,
|
||||
monitor_kernel_info,
|
||||
monitor_status,
|
||||
monitor_start,
|
||||
monitor_stop,
|
||||
monitor_get_status,
|
||||
monitor_get_snapshot,
|
||||
downloader_get_tasks,
|
||||
downloader_add_task,
|
||||
downloader_pause_task,
|
||||
@@ -126,6 +137,10 @@ pub fn run() {
|
||||
let mihomo = MihomoManager::new(app_data_dir.clone());
|
||||
app.manage(mihomo);
|
||||
|
||||
// 初始化 MonitorKernel,数据目录: {app_data_dir}/monitor/
|
||||
let monitor = MonitorKernel::new(app_data_dir.clone());
|
||||
app.manage(monitor);
|
||||
|
||||
// 初始化 DownloadEngine,数据目录: {app_data_dir}/downloader/
|
||||
let engine = DownloadEngine::new(
|
||||
app_data_dir.join("downloader"),
|
||||
@@ -196,6 +211,18 @@ pub fn run() {
|
||||
}
|
||||
}
|
||||
|
||||
// 应用启动时自动启动 monitor Kernel(硬件监控默认启用,被动读取无副作用)
|
||||
if let Some(monitor) = app.try_state::<MonitorKernel>() {
|
||||
let monitor = monitor.inner().clone();
|
||||
let app_handle = app.handle().clone();
|
||||
tauri::async_runtime::spawn(async move {
|
||||
match monitor.start_with_subscription(&app_handle).await {
|
||||
Ok(info) => eprintln!("[monitor] 自动启动成功, pid={:?}", info.pid),
|
||||
Err(e) => eprintln!("[monitor] 自动启动跳过: {}", e),
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Ok(())
|
||||
})
|
||||
.on_window_event(|window, event| {
|
||||
|
||||
Reference in New Issue
Block a user