diff --git a/Cargo.toml b/Cargo.toml index 936806c..38019ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,3 +16,4 @@ serde_json = "1.0.108" crossterm = "0.28.1" once_cell = "1.18.0" ctrlc = "3.4.1" +windows-sys = "0.36.1" diff --git a/src/commands/log.rs b/src/commands/log.rs index 44a450b..0a9c3d1 100644 --- a/src/commands/log.rs +++ b/src/commands/log.rs @@ -1,11 +1,18 @@ use super::super::config::dump::DumpConfig; use super::super::config::log_path; +use ctrlc; use std::fs::File; use std::io::{self, BufRead, BufReader, Seek, SeekFrom}; use std::thread; use std::time::Duration; pub fn tail_log(target: String) -> io::Result<()> { + ctrlc::set_handler(move || { + println!("\n退出日志查看"); + std::process::exit(0); + }) + .expect("无法设置Ctrl+C处理器"); + let dump_config = DumpConfig::get_instance(); // 解析目标ID diff --git a/src/commands/restart.rs b/src/commands/restart.rs index f160960..8347d61 100644 --- a/src/commands/restart.rs +++ b/src/commands/restart.rs @@ -41,7 +41,6 @@ pub fn restart_process( Ok(()) } - fn restart_existing_process(process: &PmrProcessInfo) -> io::Result<()> { println!("正在重启进程 '{}'...", process.name); diff --git a/src/commands/start.rs b/src/commands/start.rs index 1d0d065..eb1cc3d 100644 --- a/src/commands/start.rs +++ b/src/commands/start.rs @@ -1,6 +1,6 @@ use super::super::base::process::PmrProcessInfo; -use super::super::config::log_path; use super::super::config::dump::DumpConfig; +use super::super::config::log_path; use super::list::list_processes; use super::stop::stop_process; use serde::{Deserialize, Serialize}; diff --git a/src/commands/stop.rs b/src/commands/stop.rs index fd1b279..80ade4e 100644 --- a/src/commands/stop.rs +++ b/src/commands/stop.rs @@ -50,8 +50,6 @@ pub fn stop_process(target: &str, show_list: bool) { } .expect("无法执行进程终止命令"); - println!("--- test output: {}", output.status); - if output.status.success() { println!("已停止进程 '{}' (PID: {})", process.name, process.pid); dump_config diff --git a/src/config/log_path.rs b/src/config/log_path.rs index ef6e888..4fe67f5 100644 --- a/src/config/log_path.rs +++ b/src/config/log_path.rs @@ -1,7 +1,7 @@ +use dirs; use std::fs; use std::io; use std::path::PathBuf; -use dirs; pub fn get_log_path(pmr_id: u32) -> io::Result { let home_dir = dirs::home_dir()