criu

package
v0.9.310 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2026 License: AGPL-3.0 Imports: 19 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) FinalizeDump added in v0.9.264

func (c NoNotify) FinalizeDump(ctx context.Context, opts *criu.CriuOpts, err error) error

FinalizeDump NoNotify

func (NoNotify) FinalizeRestore added in v0.9.264

func (c NoNotify) FinalizeRestore(ctx context.Context, opts *criu.CriuOpts, err error) error

FinalizeRestore NoNotify

func (NoNotify) Initialize

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

Initialize NoNotify

func (NoNotify) InitializeDump added in v0.9.264

func (c NoNotify) InitializeDump(ctx context.Context, opts *criu.CriuOpts) error

InitializeDump NoNotify

func (NoNotify) InitializeRestore

func (c NoNotify) InitializeRestore(ctx context.Context, opts *criu.CriuOpts) error

InitializeRestore 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) 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) QueryExtFiles added in v0.9.300

func (c NoNotify) QueryExtFiles(ctx context.Context) ([]string, error)

func (NoNotify) SetupNamespaces

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

SetupNamespaces NoNotify

func (NoNotify) SkipNamespaces added in v0.9.292

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

SkipNamespaces NoNotify

type Notify

type Notify interface {
	Initialize(ctx context.Context, criuPid int32) error
	InitializeDump(ctx context.Context, opts *criu.CriuOpts) error
	InitializeRestore(ctx context.Context, opts *criu.CriuOpts) error
	FinalizeDump(ctx context.Context, opts *criu.CriuOpts, err error) error
	FinalizeRestore(ctx context.Context, opts *criu.CriuOpts, err error) 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
	SkipNamespaces(ctx context.Context, pid int32) error
	PreResume(ctx context.Context) error
	PostResume(ctx context.Context) error
	OrphanPtsMaster(ctx context.Context, fd int32) error
	QueryExtFiles(ctx context.Context) ([]string, error) // return external file keys after CRIU has seized the process tree.
}

Notify interface

type NotifyCallback

type NotifyCallback struct {
	InitializeFunc          InitializeFunc
	InitializeDumpFunc      NotifyFuncOpts
	InitializeRestoreFunc   NotifyFuncOpts
	FinalizeDumpFunc        NotifyFuncOptsErr
	FinalizeRestoreFunc     NotifyFuncOptsErr
	PreDumpFunc             NotifyFuncOpts
	PostDumpFunc            NotifyFuncOpts
	PreRestoreFunc          NotifyFuncOpts
	PostRestoreFunc         NotifyFuncPid
	NetworkLockFunc         NotifyFunc
	NetworkUnlockFunc       NotifyFunc
	SetupNamespacesFunc     NotifyFuncPid
	PostSetupNamespacesFunc NotifyFunc
	SkipNamespacesFunc      NotifyFuncPid
	PreResumeFunc           NotifyFunc
	PostResumeFunc          NotifyFunc
	OrphanPtsMasterFunc     NotifyFuncFd
	QueryExtFilesFunc       NotifyFuncExtFiles

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

func (NotifyCallback) FinalizeDump added in v0.9.264

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

func (NotifyCallback) FinalizeRestore added in v0.9.264

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

func (NotifyCallback) Initialize

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

func (NotifyCallback) InitializeDump added in v0.9.264

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

func (NotifyCallback) InitializeRestore

func (n NotifyCallback) InitializeRestore(ctx context.Context, opts *criu.CriuOpts) 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) 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) QueryExtFiles added in v0.9.300

func (n NotifyCallback) QueryExtFiles(ctx context.Context) ([]string, error)

func (NotifyCallback) SetupNamespaces

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

func (NotifyCallback) SkipNamespaces added in v0.9.292

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

type NotifyCallbackMulti

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

func (NotifyCallbackMulti) FinalizeDump added in v0.9.264

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

func (NotifyCallbackMulti) FinalizeRestore added in v0.9.264

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

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) InitializeDump added in v0.9.264

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

func (NotifyCallbackMulti) InitializeRestore

func (n NotifyCallbackMulti) InitializeRestore(ctx context.Context, opts *criu.CriuOpts) 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) 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) QueryExtFiles added in v0.9.300

func (n NotifyCallbackMulti) QueryExtFiles(ctx context.Context) ([]string, error)

func (NotifyCallbackMulti) SetupNamespaces

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

func (NotifyCallbackMulti) SkipNamespaces added in v0.9.292

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

type NotifyFunc

type NotifyFunc func(ctx context.Context) error

type NotifyFuncExtFiles added in v0.9.300

type NotifyFuncExtFiles func(ctx context.Context) ([]string, error)

type NotifyFuncFd

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

type NotifyFuncOpts

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

type NotifyFuncOptsErr added in v0.9.288

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

type NotifyFuncOptsNoError added in v0.9.244

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

type NotifyFuncPid

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

type NotifyScript added in v0.9.264

type NotifyScript = NoNotify

Jump to

Keyboard shortcuts

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