process

package
v1.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2021 License: Apache-2.0 Imports: 26 Imported by: 307

Documentation

Index

Constants

View Source
const (
	// RuncRoot is the path to the root runc state directory
	RuncRoot = "/run/containerd/runc"
	// InitPidFile name of the file that contains the init pid
	InitPidFile = "init.pid"
)

Variables

This section is empty.

Functions

func CloseFiles added in v1.5.0

func CloseFiles(files ...*os.File)

CloseFiles closes any files passed in. It it used for cleanup in the event of unexpected errors.

func NewBinaryCmd added in v1.5.0

func NewBinaryCmd(binaryURI *url.URL, id, ns string) *exec.Cmd

NewBinaryCmd returns a Cmd to be used to start a logging binary. The Cmd is generated from the provided uri, and the container ID and namespace are appended to the Cmd environment.

func NewBinaryIO

func NewBinaryIO(ctx context.Context, id string, uri *url.URL) (_ runc.IO, err error)

NewBinaryIO runs a custom binary process for pluggable shim logging

func NewRunc

func NewRunc(root, path, namespace, runtime, criu string, systemd bool) *runc.Runc

NewRunc returns a new runc instance for a process

Types

type CheckpointConfig

type CheckpointConfig struct {
	WorkDir                  string
	Path                     string
	Exit                     bool
	AllowOpenTCP             bool
	AllowExternalUnixSockets bool
	AllowTerminal            bool
	FileLocks                bool
	EmptyNamespaces          []string
}

CheckpointConfig holds task checkpoint configuration

type CreateConfig

type CreateConfig struct {
	ID               string
	Bundle           string
	Runtime          string
	Rootfs           []Mount
	Terminal         bool
	Stdin            string
	Stdout           string
	Stderr           string
	Checkpoint       string
	ParentCheckpoint string
	Options          *google_protobuf.Any
}

CreateConfig hold task creation configuration

type ExecConfig

type ExecConfig struct {
	ID       string
	Terminal bool
	Stdin    string
	Stdout   string
	Stderr   string
	Spec     *google_protobuf.Any
}

ExecConfig holds exec creation configuration

type Init

type Init struct {
	WorkDir string

	Bundle string

	Platform stdio.Platform

	Rootfs       string
	IoUID        int
	IoGID        int
	NoPivotRoot  bool
	NoNewKeyring bool
	CriuWorkPath string
	// contains filtered or unexported fields
}

Init represents an initial process for a container

func New

func New(id string, runtime *runc.Runc, stdio stdio.Stdio) *Init

New returns a new process

func (*Init) Checkpoint

func (p *Init) Checkpoint(ctx context.Context, r *CheckpointConfig) error

Checkpoint the init process

func (*Init) Create

func (p *Init) Create(ctx context.Context, r *CreateConfig) error

Create the process with the provided config

func (*Init) Delete

func (p *Init) Delete(ctx context.Context) error

Delete the init process

func (*Init) Exec

func (p *Init) Exec(ctx context.Context, path string, r *ExecConfig) (Process, error)

Exec returns a new child process

func (*Init) ExitStatus

func (p *Init) ExitStatus() int

ExitStatus of the process

func (*Init) ExitedAt

func (p *Init) ExitedAt() time.Time

ExitedAt at time when the process exited

func (*Init) ID

func (p *Init) ID() string

ID of the process

func (*Init) Kill

func (p *Init) Kill(ctx context.Context, signal uint32, all bool) error

Kill the init process

func (*Init) KillAll

func (p *Init) KillAll(ctx context.Context) error

KillAll processes belonging to the init process

func (*Init) Pause

func (p *Init) Pause(ctx context.Context) error

Pause the init process and all its child processes

func (*Init) Pid

func (p *Init) Pid() int

Pid of the process

func (*Init) Resize

func (p *Init) Resize(ws console.WinSize) error

Resize the init processes console

func (*Init) Resume

func (p *Init) Resume(ctx context.Context) error

Resume the init process and all its child processes

func (*Init) Runtime

func (p *Init) Runtime() *runc.Runc

Runtime returns the OCI runtime configured for the init process

func (*Init) SetExited

func (p *Init) SetExited(status int)

SetExited of the init process with the next status

func (*Init) Start

func (p *Init) Start(ctx context.Context) error

Start the init process

func (*Init) Status

func (p *Init) Status(ctx context.Context) (string, error)

Status of the process

func (*Init) Stdin

func (p *Init) Stdin() io.Closer

Stdin of the process

func (*Init) Stdio

func (p *Init) Stdio() stdio.Stdio

Stdio of the process

func (*Init) Update

func (p *Init) Update(ctx context.Context, r *google_protobuf.Any) error

Update the processes resource configuration

func (*Init) Wait

func (p *Init) Wait()

Wait for the process to exit

type Mount

type Mount struct {
	Type    string
	Source  string
	Target  string
	Options []string
}

Mount holds filesystem mount configuration

type Process

type Process interface {
	// ID returns the id for the process
	ID() string
	// Pid returns the pid for the process
	Pid() int
	// ExitStatus returns the exit status
	ExitStatus() int
	// ExitedAt is the time the process exited
	ExitedAt() time.Time
	// Stdin returns the process STDIN
	Stdin() io.Closer
	// Stdio returns io information for the container
	Stdio() stdio.Stdio
	// Status returns the process status
	Status(context.Context) (string, error)
	// Wait blocks until the process has exited
	Wait()
	// Resize resizes the process console
	Resize(ws console.WinSize) error
	// Start execution of the process
	Start(context.Context) error
	// Delete deletes the process and its resourcess
	Delete(context.Context) error
	// Kill kills the process
	Kill(context.Context, uint32, bool) error
	// SetExited sets the exit status for the process
	SetExited(status int)
}

Process on a system

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL