1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package cgroups
- import (
- "github.com/opencontainers/runc/libcontainer/configs"
- )
- type Manager interface {
- // Apply creates a cgroup, if not yet created, and adds a process
- // with the specified pid into that cgroup. A special value of -1
- // can be used to merely create a cgroup.
- Apply(pid int) error
- // GetPids returns the PIDs of all processes inside the cgroup.
- GetPids() ([]int, error)
- // GetAllPids returns the PIDs of all processes inside the cgroup
- // any all its sub-cgroups.
- GetAllPids() ([]int, error)
- // GetStats returns cgroups statistics.
- GetStats() (*Stats, error)
- // Freeze sets the freezer cgroup to the specified state.
- Freeze(state configs.FreezerState) error
- // Destroy removes cgroup.
- Destroy() error
- // Path returns a cgroup path to the specified controller/subsystem.
- // For cgroupv2, the argument is unused and can be empty.
- Path(string) string
- // Set sets cgroup resources parameters/limits. If the argument is nil,
- // the resources specified during Manager creation (or the previous call
- // to Set) are used.
- Set(r *configs.Resources) error
- // GetPaths returns cgroup path(s) to save in a state file in order to
- // restore later.
- //
- // For cgroup v1, a key is cgroup subsystem name, and the value is the
- // path to the cgroup for this subsystem.
- //
- // For cgroup v2 unified hierarchy, a key is "", and the value is the
- // unified path.
- GetPaths() map[string]string
- // GetCgroups returns the cgroup data as configured.
- GetCgroups() (*configs.Cgroup, error)
- // GetFreezerState retrieves the current FreezerState of the cgroup.
- GetFreezerState() (configs.FreezerState, error)
- // Exists returns whether the cgroup path exists or not.
- Exists() bool
- // OOMKillCount reports OOM kill count for the cgroup.
- OOMKillCount() (uint64, error)
- }
|