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 {
27 let pid_str = pid.to_string();
28 ActionSpec {
29 action_name: "SignalProcess",
30 mechanism: command_mechanism(
31 "sudo",
32 [
33 "/usr/lib/sysknife/action-steps",
34 "signal",
35 signal,
36 pid_str.as_str(),
37 ],
38 ),
39 risk_level: RiskLevel::High,
40 reboot_required: false,
41 rollback_available: false,
42 }
43}