criu

package
v0.9.237-test Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2025 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Criu

type Criu struct {
	// contains filtered or unexported fields
}

Criu struct

func MakeCriu

func MakeCriu() *Criu

MakeCriu returns the Criu object required for most operations

func (*Criu) Check

func (c *Criu) Check(ctx context.Context, flags ...string) (string, error)

Runs the criu check

func (*Criu) Cleanup

func (c *Criu) Cleanup() error

Cleanup cleans up

func (*Criu) Dump

func (c *Criu) Dump(
	ctx context.Context,
	opts *criu.CriuOpts,
	nfy Notify,
) (*criu.CriuDumpResp, error)

Dump dumps a process

func (*Criu) GetCriuVersion

func (c *Criu) GetCriuVersion(ctx context.Context) (int, error)

GetCriuVersion executes the VERSION RPC call and returns the version as an integer. Major * 10000 + Minor * 100 + SubLevel

func (*Criu) IsCriuAtLeast

func (c *Criu) IsCriuAtLeast(ctx context.Context, version int) (bool, error)

IsCriuAtLeast checks if the version is at least the same as the parameter version

func (*Criu) PreDump

func (c *Criu) PreDump(ctx context.Context, opts *criu.CriuOpts, nfy Notify) error

PreDump does a pre-dump

func (*Criu) Prepare

func (c *Criu) Prepare(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer, extraFiles ...*os.File) error

Prepare sets up everything for the RPC communication to CRIU

func (*Criu) Restore

func (c *Criu) Restore(
	ctx context.Context,
	opts *criu.CriuOpts,
	nfy Notify,
	stdin io.Reader,
	stdout, stderr io.Writer,
	extraFiles ...*os.File,
) (*criu.CriuRestoreResp, error)

Restore restores a process

func (*Criu) SetCriuPath

func (c *Criu) SetCriuPath(path string)

SetCriuPath allows setting the path to the CRIU binary if it is in a non standard location

func (*Criu) StartPageServer

func (c *Criu) StartPageServer(ctx context.Context, opts *criu.CriuOpts) error

StartPageServer starts the page server

func (*Criu) StartPageServerChld

func (c *Criu) StartPageServerChld(ctx context.Context, opts *criu.CriuOpts) (int, int, error)

StartPageServerChld starts the page server and returns PID and port

type InitializeFunc

type InitializeFunc func(ctx context.Context, criuPid int32) error

type NoNotify

type NoNotify struct{}

NoNotify struct

func (NoNotify) Initialize

func (c NoNotify) Initialize(ctx context.Context, criuPid int) error

Initialize NoNotify

func (NoNotify) NetworkLock

func (c NoNotify) NetworkLock(ctx context.Context) error

NetworkLock NoNotify

func (NoNotify) NetworkUnlock

func (c NoNotify) NetworkUnlock(ctx context.Context) error

NetworkUnlock NoNotify

func (NoNotify) OnRestoreError

func (c NoNotify) OnRestoreError(ctx context.Context)

func (NoNotify) OrphanPtsMaster

func (c NoNotify) OrphanPtsMaster(ctx context.Context, fd int32) error

func (NoNotify) PostDump

func (c NoNotify) PostDump(ctx context.Context, dir string) error

PostDump NoNotify

func (NoNotify) PostRestore

func (c NoNotify) PostRestore(ctx context.Context, pid int32) error

PostRestore NoNotify

func (NoNotify) PostResume

func (c NoNotify) PostResume(ctx context.Context) error

PostResume NoNotify

func (NoNotify) PostSetupNamespaces

func (c NoNotify) PostSetupNamespaces(ctx context.Context) error

PostSetupNamespaces NoNotify

func (NoNotify) PreDump

func (c NoNotify) PreDump(ctx context.Context, dir string) error

PreDump NoNotify

func (NoNotify) PreRestore

func (c NoNotify) PreRestore(ctx context.Context, dir string) error

PreRestore NoNotify

func (NoNotify) PreResume

func (c NoNotify) PreResume(ctx context.Context) error

PreResume NoNotify

func (NoNotify) SetupNamespaces

func (c NoNotify) SetupNamespaces(ctx context.Context, pid int32) error

SetupNamespaces NoNotify

type Notify

type Notify interface {
	Initialize(ctx context.Context, criuPid int32) error
	PreDump(ctx context.Context, opts *criu.CriuOpts) error
	PostDump(ctx context.Context, opts *criu.CriuOpts) error
	PreRestore(ctx context.Context, opts *criu.CriuOpts) error
	PostRestore(ctx context.Context, pid int32) error
	NetworkLock(ctx context.Context) error
	NetworkUnlock(ctx context.Context) error
	SetupNamespaces(ctx context.Context, pid int32) error
	PostSetupNamespaces(ctx context.Context) error
	PreResume(ctx context.Context) error
	PostResume(ctx context.Context) error
	OrphanPtsMaster(ctx context.Context, fd int32) error
	OnRestoreError(ctx context.Context)
}

Notify interface

type NotifyCallback

type NotifyCallback struct {
	InitializeFunc          InitializeFunc
	PreDumpFunc             NotifyFuncOpts
	PostDumpFunc            NotifyFuncOpts
	PreRestoreFunc          NotifyFuncOpts
	PostRestoreFunc         NotifyFuncPid
	NetworkLockFunc         NotifyFunc
	NetworkUnlockFunc       NotifyFunc
	SetupNamespacesFunc     NotifyFuncPid
	PostSetupNamespacesFunc NotifyFunc
	PreResumeFunc           NotifyFunc
	PostResumeFunc          NotifyFunc
	OrphanPtsMasterFunc     NotifyFuncFd
	OnRestoreErrorFunc      NotifyFuncNoError

	Name string // to give some context to this callback
}

func (NotifyCallback) Initialize

func (n NotifyCallback) Initialize(ctx context.Context, criuPid int32) error

func (NotifyCallback) NetworkLock

func (n NotifyCallback) NetworkLock(ctx context.Context) error

func (NotifyCallback) NetworkUnlock

func (n NotifyCallback) NetworkUnlock(ctx context.Context) error

func (NotifyCallback) OnRestoreError

func (n NotifyCallback) OnRestoreError(ctx context.Context)

func (NotifyCallback) OrphanPtsMaster

func (n NotifyCallback) OrphanPtsMaster(ctx context.Context, fd int32) error

func (NotifyCallback) PostDump

func (n NotifyCallback) PostDump(ctx context.Context, opts *criu.CriuOpts) error

func (NotifyCallback) PostRestore

func (n NotifyCallback) PostRestore(ctx context.Context, pid int32) error

func (NotifyCallback) PostResume

func (n NotifyCallback) PostResume(ctx context.Context) error

func (NotifyCallback) PostSetupNamespaces

func (n NotifyCallback) PostSetupNamespaces(ctx context.Context) error

func (NotifyCallback) PreDump

func (n NotifyCallback) PreDump(ctx context.Context, opts *criu.CriuOpts) error

func (NotifyCallback) PreRestore

func (n NotifyCallback) PreRestore(ctx context.Context, opts *criu.CriuOpts) error

func (NotifyCallback) PreResume

func (n NotifyCallback) PreResume(ctx context.Context) error

func (NotifyCallback) SetupNamespaces

func (n NotifyCallback) SetupNamespaces(ctx context.Context, pid int32) error

type NotifyCallbackMulti

type NotifyCallbackMulti struct {
	// contains filtered or unexported fields
}

func (*NotifyCallbackMulti) Include

func (n *NotifyCallbackMulti) Include(nfy *NotifyCallback)

func (*NotifyCallbackMulti) IncludeMulti

func (n *NotifyCallbackMulti) IncludeMulti(nfy *NotifyCallbackMulti)

func (NotifyCallbackMulti) Initialize

func (n NotifyCallbackMulti) Initialize(ctx context.Context, criuPid int32) error

func (NotifyCallbackMulti) NetworkLock

func (n NotifyCallbackMulti) NetworkLock(ctx context.Context) error

func (NotifyCallbackMulti) NetworkUnlock

func (n NotifyCallbackMulti) NetworkUnlock(ctx context.Context) error

func (NotifyCallbackMulti) OnRestoreError

func (n NotifyCallbackMulti) OnRestoreError(ctx context.Context)

func (NotifyCallbackMulti) OrphanPtsMaster

func (n NotifyCallbackMulti) OrphanPtsMaster(ctx context.Context, fd int32) error

func (NotifyCallbackMulti) PostDump

func (n NotifyCallbackMulti) PostDump(ctx context.Context, opts *criu.CriuOpts) error

func (NotifyCallbackMulti) PostRestore

func (n NotifyCallbackMulti) PostRestore(ctx context.Context, pid int32) error

func (NotifyCallbackMulti) PostResume

func (n NotifyCallbackMulti) PostResume(ctx context.Context) error

func (NotifyCallbackMulti) PostSetupNamespaces

func (n NotifyCallbackMulti) PostSetupNamespaces(ctx context.Context) error

func (NotifyCallbackMulti) PreDump

func (n NotifyCallbackMulti) PreDump(ctx context.Context, opts *criu.CriuOpts) error

func (NotifyCallbackMulti) PreRestore

func (n NotifyCallbackMulti) PreRestore(ctx context.Context, opts *criu.CriuOpts) error

func (NotifyCallbackMulti) PreResume

func (n NotifyCallbackMulti) PreResume(ctx context.Context) error

func (NotifyCallbackMulti) SetupNamespaces

func (n NotifyCallbackMulti) SetupNamespaces(ctx context.Context, pid int32) error

type NotifyFunc

type NotifyFunc func(ctx context.Context) error

type NotifyFuncFd

type NotifyFuncFd func(ctx context.Context, fd int32) error

type NotifyFuncNoError

type NotifyFuncNoError func(ctx context.Context)

type NotifyFuncOpts

type NotifyFuncOpts func(ctx context.Context, opts *criu.CriuOpts) error

type NotifyFuncPid

type NotifyFuncPid func(ctx context.Context, pid int32) error

Jump to

Keyboard shortcuts

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