[][src]Module libcgroup_rs::initialization

1.Initialize

URL: Initialize

Functions:

  • cgroup_init
  • cgroup_get_subsys_mount_point

Usage:

use libcgroup_rs::initialization::CGroupInitializer;
use libcgroup_rs::error::{C_EC_GROUP_NOT_MOUNTED,cg_get_error};
use libcgroup_rs::extend::MountBuilder;

fn main()->Result<(),Box<dyn std::error::Error>>{
    // Initialize
    // only root
    // mount cgroup space
    match CGroupInitializer::init() {
        Ok(_) => (),
        Err(e) if e
            .kind()
            .eq(&cg_get_error(C_EC_GROUP_NOT_MOUNTED).kind()) => {

            // Mouth Space
            let mut space = MountBuilder::new();
            space
                .set_target_path("/dev/shm/cgroups")
                .set_src_path("cgroup")
                .set_type_name("cgroup")
                .set_opts("cpu");

            if !space.exists() {
                space.mount()?;
            }
            CGroupInitializer::init()?;
        }
        Err(e) => return Err(Box::new(e)),
    }

    println!("Mount Point = {:?}",CGroupInitializer::get_subsys_mount_point("cpu"));

    Ok(())
}

Structs

CGroupInitializer