当前 API

当前 API 由以下方法组成

Ping (int junk) -> None

Ping 仅用于测试管理器是否正常运行,整数的值会被忽略。

GetPidCgroup (string controller, int pid) -> string cgroup

获取控制器和 PID 并返回 cgroup 路径。

GetPidCgroupAbs (string controller, int pid) -> string cgroup

获取控制器和 PID 并返回绝对 cgroup 路径。

Create (string controller, string cgroup) -> int existed

在提供的控制器中创建新的 cgroup 路径,如果路径已存在则返回 1,如果创建成功则返回 0。

Chown (string controller, string cgroup, int uid, int gid) -> None

将提供的控制器/cgroup 路径的拥有者更改为提供的 uid 和 gid,这将更改目录以及 cgroup.procs 和 tasks 文件的拥有者。

Chmod (string controller, string cgroup, string file, int mode) -> None

将提供的控制器/cgroup/文件路径的权限更改为提供的模式。

MovePid (string controller, string cgroup, int pid) -> None

将提供的 PID 移动到提供的控制器/cgroup 中。

MovePidAbs (string controller, string cgroup, int pid) -> None

类似于 MovePid,但获取的是相对于调用者(或代理)的绝对 cgroup 路径。此调用仅限于 root 用户,因为它允许您跳过当前的 cgroup 限制。

GetValue (string controller, string cgroup, string key) -> string value

查询给定控制器/cgroup 中给定键的值。值始终以字符串形式返回。

SetValue (string controller, string cgroup, string key, string value) -> None

将给定键的值设置为提供的值。

Remove (string controller, string cgroup, int recursive) -> int existed

删除提供的 cgroup,如果 recursive 设置为 1,则任何子 cgroup 也将被删除。返回值指示 cgroup 是否存在。

GetTasks (string controller, string cgroup) -> array of int

返回一个整数数组,表示提供的 cgroup 路径中的所有 PID。

GetTasksRecursive (string controller, string cgroup) -> array of int

返回一个整数数组,表示提供的 cgroup 路径及其子目录中的所有 PID。

ListChildren (string controller, string cgroup) -> array of string

返回一个字符串数组,表示提供的 cgroup 路径的所有子项(子 cgroup)。

RemoveOnEmpty (string controller, string cgroup) -> None

将 cgroup 标记为在为空时可删除。一旦最后一个任务退出 cgroup,cgmanager 将自动将其删除。

Prune (string controller, string cgroup) -> None

在 cgroup 路径及其任何子目录(递归)上调用 RemoveOnEmpty。

任务不会被杀死,但一旦它们全部自然退出或被某些东西杀死,cgroup 将消失。

ListControllers () -> array of string

返回一个字符串数组,表示支持的控制器。

ListKeys (string controller, string cgroup) -> array of (string, uint, uint, uint)

返回一个 (字符串名称,uint uid,uint gid,uint 模式) 数组,表示可用的 cgroup 键。

api_version (property) -> integer

当前的内部 API 版本,用于功能检查。

API 定义文档

cgmanager 代码库中的 org.linuxcontainers.cgmanager.xml 文件 用于生成客户端库,并且是权威的 API 定义。