summaryrefslogtreecommitdiffstats
path: root/src/app
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2019-12-29 21:40:22 -0500
committerClement Tsang <34804052+ClementTsang@users.noreply.github.com>2019-12-29 21:40:22 -0500
commit98ccc70743e2991ff0fc0e6c7562749ecc087127 (patch)
treef37c08e65bf85dddcdca6f6ef8e07e2619f765d9 /src/app
parentff43c467e491b00c2428ecc66480a4e2064fd0fc (diff)
Fix processes in windows
Diffstat (limited to 'src/app')
-rw-r--r--src/app/data_collection/processes.rs25
-rw-r--r--src/app/process_killer.rs2
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()?;