add pids.max

This commit is contained in:
mii
2024-10-30 11:53:13 +09:00
parent 5b2e01f7be
commit 8a9eeae972
3 changed files with 25 additions and 2 deletions

View File

@ -29,10 +29,11 @@ fn main() {
max: CGroupLimitValue::Max,
period: 100000,
}),
memory_max: Some(CGroupLimitValue::Value(1024 * 1024 * 2)),
memory_max: Some(CGroupLimitValue::Value(1024 * 1024 * 1024)),
pids_max: Some(CGroupLimitValue::Value(3)),
..Default::default()
}),
new_net: true,
new_net: false,
},
);

View File

@ -58,6 +58,11 @@ impl CGroup {
self.set_memory_max(memory_max)?;
}
if let Some(pids_max) = &option.pids_max {
info!("setting pids.max");
self.set_pids_max(pids_max)?;
}
Ok(())
}
@ -228,6 +233,22 @@ impl CGroup {
self.write("memory.max", &to_write)
}
// pids read
pub fn get_pids_max(&self) -> Result<CGroupLimitValue<u32>, std::io::Error> {
let max = self.read("pids.max")?;
Ok(CGroupLimitValue::from_str(&max).unwrap())
}
// pids write
pub fn set_pids_max(&self, pids_limit: &CGroupLimitValue<u32>) -> Result<(), std::io::Error> {
let to_write = pids_limit.to_string();
self.write("pids.max", &to_write)
}
fn write_value<T>(&self, name: &str, value: T) -> Result<(), std::io::Error>
where
T: fmt::Display,

View File

@ -4,4 +4,5 @@ use super::{cpu_limit::CpuLimit, limit_value::CGroupLimitValue};
pub struct CGroupOption {
pub cpu_max: Option<CpuLimit>,
pub memory_max: Option<CGroupLimitValue<u32>>,
pub pids_max: Option<CGroupLimitValue<u32>>,
}