1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- // +build linux
- package cgroups
- import (
- "fmt"
- "github.com/opencontainers/runc/libcontainer/configs"
- )
- type Manager interface {
- // Applies cgroup configuration to the process with the specified pid
- Apply(pid int) error
- // Returns the PIDs inside the cgroup set
- GetPids() ([]int, error)
- // Returns the PIDs inside the cgroup set & all sub-cgroups
- GetAllPids() ([]int, error)
- // Returns statistics for the cgroup set
- GetStats() (*Stats, error)
- // Toggles the freezer cgroup according with specified state
- Freeze(state configs.FreezerState) error
- // Destroys the cgroup set
- Destroy() error
- // NewCgroupManager() and LoadCgroupManager() require following attributes:
- // Paths map[string]string
- // Cgroups *cgroups.Cgroup
- // Paths maps cgroup subsystem to path at which it is mounted.
- // Cgroups specifies specific cgroup settings for the various subsystems
- // Returns cgroup paths to save in a state file and to be able to
- // restore the object later.
- GetPaths() map[string]string
- // Set the cgroup as configured.
- Set(container *configs.Config) error
- }
- type NotFoundError struct {
- Subsystem string
- }
- func (e *NotFoundError) Error() string {
- return fmt.Sprintf("mountpoint for %s not found", e.Subsystem)
- }
- func NewNotFoundError(sub string) error {
- return &NotFoundError{
- Subsystem: sub,
- }
- }
- func IsNotFound(err error) bool {
- if err == nil {
- return false
- }
- _, ok := err.(*NotFoundError)
- return ok
- }
|