#another #node #cgroup #system #cgroupv2

cgumi

cgumi is yet another crate for interacting with cgroupv2

2 releases

0.0.2 May 25, 2023
0.0.1 May 25, 2023

#706 in Unix APIs

MIT license

80KB
1.5K SLoC

cgumi

https://crates.io/crates/cgumi

cgumi is yet another crate for interacting with cgroupv2 (WIP). It focuses on serving apps for creating their own cgroupv2 hierarchies, instead of managing all cgroup nodes on one system.

There is no plan for legacy cgroupv1 support.

Notes

Breaking changes may happen! And suggestions are very welcomed as current API design may be suboptimized.

systemd feature is enabled by default. To disable systemd feature (and thus avoiding installing zbus):

[dependencies]
cgumi = { version = "*", default-features = false }

Planned features

  • Create node
  • Move process to node
  • Delegate node (chown)
  • Get memory & io usage
  • Sudo + sh support
  • Systemd support

Running tests

Some tests run only in root, and some others run only in non-root env.

# both are necessary to run all tests
cargo test
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER='sudo -E' cargo test

And also, you can run tests with --nocapture to see more details. RUST_LOG is also available.

RUST_LOG=debug cargo test -- --nocapture

Dependencies

~2–12MB
~164K SLoC