From be58b53fc97d46a4b4840ea55ca939f6aa8df29f Mon Sep 17 00:00:00 2001 From: Levente Kurusa Date: Thu, 30 Aug 2018 09:30:14 +0200 Subject: [PATCH] README: clarify license and add an example Signed-off-by: Levente Kurusa --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index 50fd7cd..b985e27 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,38 @@ # cgroups-rs Native Rust library for managing control groups under Linux + +# Example + +## Create a control group, and limit the pid resource + +``` rust +// Acquire a handle for the V1 cgroup hierarchy. +let hier = ::hierarchies::V1::new(); +// Create a control group named "example" in the hierarchy. +let cg = Cgroup::new(&hier, String::from("example"), 0); +{ + // Get a handle to the pids controller of the control group. + let pids: &PidController = cg.controller_of().expect("No pids controller in V1 hierarchy!"); + // Set the maximum amount of processes in the cgroup. + pids.set_pid_max(PidMax::Value(10)); + // Check that this has had the desired effect by reading the value back from the kernel. + assert_eq!(pids.get_pid_max(), Some(PidMax::Value(10))); +} +// Once done, delete the control group (and its associated controllers). +cg.delete(); +``` + +# Disclaimer + +This crate is licensed under: + +- MIT License (see LICENSE-MIT); or +- Apache 2.0 LIcense (see LICENSE-Apache-2.0), + +at your option. + +Please note that this crate is under heavy development, we will use sematic +versioning, but during the `0.0.*` phase, no guarantees are made about +backwards compatibility. + +Regardless, check back often and thanks for taking a look!