diff options
author | Clement Tsang <34804052+ClementTsang@users.noreply.github.com> | 2019-12-29 21:40:22 -0500 |
---|---|---|
committer | Clement Tsang <34804052+ClementTsang@users.noreply.github.com> | 2019-12-29 21:40:22 -0500 |
commit | 98ccc70743e2991ff0fc0e6c7562749ecc087127 (patch) | |
tree | f37c08e65bf85dddcdca6f6ef8e07e2619f765d9 /src/app | |
parent | ff43c467e491b00c2428ecc66480a4e2064fd0fc (diff) |
Fix processes in windows
Diffstat (limited to 'src/app')
-rw-r--r-- | src/app/data_collection/processes.rs | 25 | ||||
-rw-r--r-- | src/app/process_killer.rs | 2 |
2 files changed, 23 insertions, 4 deletions
diff --git a/src/app/data_collection/processes.rs b/src/app/data_collection/processes.rs index 361e7a26..8e2a42b5 100644 --- a/src/app/data_collection/processes.rs +++ b/src/app/data_collection/processes.rs @@ -192,13 +192,32 @@ pub fn get_sorted_processes_list( } } } else { - // Windows et al. - let process_hashmap = sys.get_process_list(); for process_val in process_hashmap.values() { + let command_name = if process_val.name().is_empty() { + let process_cmd = process_val.cmd(); + if process_cmd.len() > 1 { + process_cmd[0].clone() + } else { + let process_exe = process_val.exe().file_stem(); + if let Some(exe) = process_exe { + let process_exe_opt = exe.to_str(); + if let Some(exe_name) = process_exe_opt { + exe_name.to_string() + } else { + "".to_string() + } + } else { + "".to_string() + } + } + } else { + process_val.name().to_string() + }; + process_vector.push(ProcessData { pid: process_val.pid() as u32, - command: process_val.name().to_string(), + command: command_name, mem_usage_percent: None, mem_usage_kb: Some(process_val.memory()), cpu_usage_percent: f64::from(process_val.cpu_usage()), diff --git a/src/app/process_killer.rs b/src/app/process_killer.rs index cab40729..160139b2 100644 --- a/src/app/process_killer.rs +++ b/src/app/process_killer.rs @@ -33,7 +33,7 @@ impl Process { } /// Kills a process, given a PID. -pub fn _kill_process_given_pid(pid: u64) -> crate::utils::error::Result<()> { +pub fn kill_process_given_pid(pid: u64) -> crate::utils::error::Result<()> { if cfg!(target_os = "linux") { // Linux Command::new("kill").arg(pid.to_string()).output()?; |