sysknife_daemon/actions/
processes.rs1use super::{command_mechanism, ActionSpec};
2use sysknife_types::RiskLevel;
3
4pub fn specs() -> Vec<ActionSpec> {
5 vec![list_processes_spec(), signal_process(1234, "TERM")]
6}
7
8pub fn list_processes_spec() -> ActionSpec {
9 ActionSpec {
10 action_name: "ListProcesses",
11 mechanism: command_mechanism("ps", ["aux", "--sort=-%mem"]),
12 risk_level: RiskLevel::Low,
13 reboot_required: false,
14 rollback_available: false,
15 }
16}
17
18pub fn signal_process(pid: u32, signal: &str) -> ActionSpec {
25 let pid_str = pid.to_string();
26 ActionSpec {
27 action_name: "SignalProcess",
28 mechanism: command_mechanism("sudo", ["kill", "-s", signal, pid_str.as_str()]),
29 risk_level: RiskLevel::High,
30 reboot_required: false,
31 rollback_available: false,
32 }
33}