use anyhow::{Context, Result};
use std::fs;
use std::{collections::HashMap, path::Path};
pub fn set_sysctl(kernel_parameter_map: &HashMap<String, String>) -> Result<()> {
for (parameter, value) in kernel_parameter_map {
let path = &Path::new("/proc/sys").join(parameter.replace('.', "/"));
fs::write(path, value).context(format!(
"failed to write {} to {}",
value,
path.display()
))?;
}
Ok(())
}
pub fn set_oom_score_adj(oom_score_adj: i32) -> Result<()> {
let sysctl_path = Path::new("/proc/self/oom_score_adj");
fs::write(sysctl_path, oom_score_adj.to_string())
.context(format!("failed to set oom_score_adj to {}", oom_score_adj))?;
Ok(())
}