pub mod capture;
pub mod incident;
pub mod killer;
use std::path::PathBuf;
use std::time::Duration;
#[derive(Debug, Clone)]
pub enum KillMode {
Immediate,
Graceful { grace: Duration },
}
#[derive(Debug, Clone)]
pub struct KillRequest {
pub pid: u32,
pub mode: KillMode,
pub kill_children: bool,
pub capture_state: bool,
pub output_dir: Option<PathBuf>, pub reason: Option<String>,
}
#[derive(Debug, Clone)]
pub struct KillReport {
pub pid: u32,
pub success: bool,
pub children_killed: Vec<u32>,
pub incident_dir: Option<PathBuf>,
pub error: Option<String>,
}
pub fn kill_pid(req: KillRequest) -> anyhow::Result<KillReport> {
killer::kill_pid(req)
}
pub fn parse_target_to_pid(s: &str) -> Option<u32> {
if let Some(rest) = s.strip_prefix("proc-") {
return rest.parse().ok();
}
s.parse().ok()
}