[CRIU] [PATCH] docs: Rework the manual
Cyrill Gorcunov
gorcunov at openvz.org
Fri May 1 04:22:19 PDT 2015
I think this might be more readable if we group options
by the commands. So here is the result. Please read and
tell me what you think.
I put formatted manual here because read diff itself
is almost impossible.
| CRIU(8) CRIU Manual CRIU(8)
|
|
|
| NAME
| criu - checkpoint/restore in userspace
|
| SYNOPSIS
| criu command [options]
|
| DESCRIPTION
| criu is a command line utility to steer checkpoint and restore
| procedures.
|
| cpuinfo check
| Reads information about CPU from an image file and checks if it is
| compatible with currently running CPU.
|
| OPTIONS
| The options are depending on the command criu run with.
|
| Common options
| Common options are applied to any command.
|
| -v[num|v...]
| Set logging level to num. The higer the level, the more output is
| produced. Either numeric values or multiple v can be used. The
| following levels are available:
|
| · -v1, -v only messages and errors;
|
| · -v2, -vv also warnings (default level);
|
| · -v3, -vvv also information messages and timestamps;
|
| · -v4, -vvvv lots of debug.
|
| --pidfile file
| Write root task, service or page-server pid into a file.
|
| -o, --log-file file
| Write logging messages to file.
|
| --log-pid
| Write separate logging files per each pid.
|
| -D, --images-dir path
| Use path path as a base directory where to look for dump files set.
|
| --prev-images-dir path
| Use path path as a parent directory where to look for dump files
| set. This make sence in case of increment dumps.
|
| -W, --work-dir dir
| Use directory dir for putting logs, pidfiles and statistics. If not
| specified, path from -D option is taken.
|
| --close fd
| Close file with descriptor fd before any actions.
|
| -L, --libdir path
| Path to a plugins directory.
|
| --action-script SCRIPT
| Add an external action script. The environment variable
| CRTOOLS_SCRIPT_ACTION contains one of the actions:
|
| · post-dump run an action upon dump completion;
|
| · post-restore run an action upon restore completion;
|
| · network-lock lock network in a target network namespace;
|
| · network-unlock unlock network in a target network namespace;
|
| · setup-namespaces run an action once root task just been created
| with required namespaces, note it is early stage on restore
| nothing were restored yet except namespaces themselves.
|
| -V, --version
| Print program version and exit.
|
| -h, --help
| Print inline help and exit.
|
| pre-dump
| Launches that named pre-dump procedure, where criu does snapshot of
| memory changes since previous pre-dump. Also criu forms fsnotify cache
| which speedup restore procedure. pre-dump requires at least -t option
| (see dump below). Optionally page-server options may be specified.
|
| --track-mem
| Turn on memory changes tracker in the kernel. If the option is not
| passed the memory tracker get turned on implicitly.
|
| dump
| Starts a checkpoint procedure.
|
| -t, --tree pid
| Checkpoint the whole process tree starting from pid.
|
| -R, --leave-running
| Leave tasks in running state after checkpoint instead of killing
| them. This option is pretty dangerous and should be used if and
| only if you understand what you are doing. If task is about to run
| after been checkpointed it can modify TCP connections, delete files
| and do other dangerous actions. So that criu itself can not
| guarantee that the next restore action will not fail. Most likely
| if a user starts criu with this option passed at least the file
| system snapshot must be done with help of post-dump script. In
| other words, do not use it until really needed.
|
| -s, --leave-stopped
| Leave tasks in stopped state after checkpoint instead of killing
| them.
|
| -x, --ext-unix-sk
| Dump external unix sockets.
|
| -n, --namespaces ns[,ns...]
| Checkpoint namespaces. Namespaces must be separated by comma.
| Currently supported namespaces: uts, ipc, mnt, pid, net.
|
| --manage-cgroups
| Collect cgroups into the image thus they gonna be restored then.
| Without this argument criu won't save cgroups configuration
| associated with a task.
|
| --tcp-established
| Checkpoint established TCP connections.
|
| --veth-pair IN=OUT
| Correspondence between outside and inside names of veth devices.
|
| --evasive-devices
| Use any path to a device file if the original one is inaccessible.
|
| --page-server
| Send pages to a page server (see page-server command).
|
| --force-irmap
| Force resolving names for inotify and fsnotify watches.
|
| --auto-dedup
| Deduplicate "old" data in pages images of previous dump. Which
| implies incremental dump mode (see pre-dump command).
|
| -l, --file-locks
| Dump file locks. It is necessary to make sure that all file lock
| users are taken into dump, so it is only safe to use this for
| enclojured containers where locks are not holed by someone outside
| of it.
|
| -M, --ext-mount-map KEY:VAL
| Setup mapping for external mounts. KEY is a mountpoint inside
| container and corresponding VAL is a string that will be written
| into the image as mountpoint's root value.
|
| --link-remap
| Allow to link unlinked files back when possible (modifies FS till
| restore).
|
| -j, --shell-job
| Allow to dump shell jobs. This implies the restored task will
| inherit session and process group ID from the criu itself. Also
| this option allows one to migrate a single external tty connection,
| in other words this option allows one to migrate such application
| as top and friends. If passed on dump it must be specified on
| restore as well.
|
| --cpu-cap [,cap]
| Specify cap CPU capability to be written into an image file.
| Basically if cap is one of all, cpu or ins, then criu writes CPU
| related information into image file. If the option is omitted or
| set to none then image won't be written. By default criu do not
| write this image.
|
| restore
| Restores previously checkpointed processes.
|
| --inherit-fd fd[num]:existing
| Inherit file descriptors. This allows to treat file descriptor num
| as being already opened via existing one and instead of trying to
| open we inherit it.
|
| -d, --restore-detached
| Detach criu itself once restore is complete.
|
| -S, --restore-sibling
| Restore root task as a sibling (make sense with --restore-detached)
| only.
|
| -r, --root path
| Change the root filesystem (when run in mount namespace).
|
| --manage-cgroups
| Restore cgroups configuration associated with a task from the
| image.
|
| --cgroup-root [controller:]/newroot
| Change the root cgroup the controller will be installed into. No
| controller means that root is the default for all controllers not
| specified.
|
| --tcp-established
| Restore previously dumped established TCP connections. This implies
| that the network has been locked between dump and restore phases so
| other side of a connection simply notice a kind of lag.
|
| --veth-pair IN=OUT
| Correspondence between outside and inside names of veth devices.
|
| -l, --file-locks
| Restore file locks from the image.
|
| -M, --ext-mount-map KEY:VAL
| Setup mapping for external mounts. KEY is the value from the image
| (VAL from dump) and the VAL is the path on host that will be
| bind-mounted into container (to the mountpoint path from image).
|
| --ext-mount-map auto
| This is a special case. If this flag is passed, when an external
| mount is missing from the command line --ext-mount-map KEY:VAL
| syntax, criu attempts to automatically resolve this mount from its
| namespace.
|
| --enable-external-sharing, --enable-external-masters
| These flags enable external shared or slave mounts to be resolved
| automatically when --ext-mount-map auto is passed.
|
| --auto-dedup
| As soon as a page is restored it get punched out from image.
|
| -j, --shell-job
| Restore shell jobs, in other words inherit session and process
| group ID from the criu itself.
|
| --cpu-cap [,cap]
| Specify cap CPU capability to be present on the CPU the process is
| restoring. To inverse capability prefix it with ^. This option
| implies that --cpu-cap has been passed on dump as well, except fpu
| option case.
|
| · all. Require all capabilities. This is default mode if
| --cpu-cap is passed without arguments. Most safe mode.
|
| · cpu. Require the CPU to have all capabilities in image to match
| runtime CPU>
|
| · fpu. Requre the CPU to have comaptible FPU. For example the
| process might be dumped with xsave capability but attempted to
| restore without it present on target CPU. In such case we
| refuse to procceed. This is default mode if --cpu-cap is not
| present in command line. Note this argument might be passed
| even if on the dump no --cpu-cap have been specified becase FPU
| frames are always encoded into images.
|
| · ins Require CPU compatibility on instructions level.
|
| · none. Ignore capabilities. Most dangerous mode. The behaviour
| is implementation dependent. Try to not use it until really
| required. One possible need of using this option is when
| --cpu-cap=cpu has been passed on dump then images are migrated
| to a less capable processor and one need to restore this
| application, by default criu will refuse to proceed without
| relaxing capability with --cpu-cap=none parameter.
|
| check
| Tests wheter the kernel support is up to date.
|
| --ms
| Do not check not yet merged features.
|
| --feature name
| Check a particular feature. Instead of checking everything one may
| specify which exactly feature is to be tested. The name may be:
| mnt_id, aio_remap, timerfd, tun, userns.
|
| page-server
| Launches criu in page server mode. FIXME: write about directories.
|
| --daemon
| Runs page server as a daemon (background process).
|
| --address address
| Page server IP address.
|
| --port number
| Page server port number.
|
| exec
| Executes a system call inside a destination task's context.
|
| service
| Launches criu in RPC daemon mode where criu is listeninп for RPC
| commands over socket to perform. This is convenient for the case where
| daemon itself is running in a privilege (superuser) mode but clients
| are not.
|
| dedup
| Starts pagemap data deduplication procedure, where criu scans over all
| pagemap files and tries to minimalize the number of pagemap entries by
| obtaining the references from a parent pagemap image.
|
| cpuinfo dump
| Fetches current CPU features and write them into an image file.
|
| cpuinfo check
| Fetches current CPU features (ie CPU the criu is running on) and test
| if they are compatible with ones present in image file.
|
| SYSCALLS EXECUTION
| To run a system call in another task's context use
|
| criu exec -t pid syscall-string
|
| command. The syscall-string should look like
|
| syscall-name syscall-arguments ...
|
| Each command line argument is transformed into the system call argument
| by the following rules:
|
| · If one starts with &, the rest of it gets copied to the target
| task's address space and the respective syscall argument is the
| pointer to this string;
|
| · Otherwise it is treated as a number (converted with strtol) and is
| directly passed into the system call.
|
| EXAMPLES
| To checkpoint a program with pid of 1234 and write all image files into
| directory checkpoint:
|
| criu dump -D checkpoint -t 1234
|
| To restore this program detaching criu itself:
|
| criu restore -d -D checkpoint
|
| To close a file descriptor number 1 in task with pid 1234:
|
| criu exec -t 1234 close 1
|
| To open a file named /foo/bar for read-write in the task with pid 1234:
|
| criu exec -t 1234 open '&/foo/bar' 2
|
| AUTHOR
| OpenVZ team.
|
| COPYRIGHT
| Copyright (C) 2011-2015, Parallels Inc.
|
|
|
| criu 0.0.3 05/01/2015 CRIU(8)
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
Documentation/criu.txt | 419 +++++++++++++++++++++++++++++--------------------
1 file changed, 248 insertions(+), 171 deletions(-)
diff --git a/Documentation/criu.txt b/Documentation/criu.txt
index d2a4f5bde319..b8fd2535db54 100644
--- a/Documentation/criu.txt
+++ b/Documentation/criu.txt
@@ -2,80 +2,121 @@ CRIU(8)
=======
:doctype: manpage
:man source: criu
-:man version: 0.0.2
+:man version: 0.0.3
:man manual: CRIU Manual
NAME
----
criu - checkpoint/restore in userspace
+
SYNOPSIS
--------
*criu* 'command' ['options']
+
DESCRIPTION
-----------
-*criu* is command line utility to steer checkpoint and restore procedure.
-
-The 'command' can be one of the following:
-
-*pre-dump*::
-Launch that named pre-dump procedure, where *criu* does snapshot of
-memory changes since previous pre-dump. Also *criu* forms fsnotify
-cache which speedup *restore* procedure.
-
-*dump*::
-Initiate checkpoint procedure.
+*criu* is a command line utility to steer checkpoint and restore procedures.
-*restore*::
-Restore previously checkpointed processes.
-
-*show*::
-Decode own binary dump files and show their contents in human-readable form.
-
-*check*::
-Test whether the kernel support is up-to-date.
+*cpuinfo* *check*::
+ Reads information about CPU from an image file and checks if it is compatible
+ with currently running CPU.
-*page-server*::
-Launch a page server.
-*exec*::
-Execute a system call from other task\'s context.
+OPTIONS
+-------
+The options are depending on the 'command' *criu* run with.
-*service*::
-Start RPC service.
+Common options
+~~~~~~~~~~~~~~
+Common options are applied to any 'command'.
-*dedup*::
-Starts pagemap data deduplication procedure, where *criu* scans over all
-pagemap files and tries to minimalize the number of pagemap entries by
-obtaining the references from a parent pagemap image.
+*-v*['num'|*v*...]::
+ Set logging level to 'num'. The higer the level, the more output
+ is produced. Either numeric values or multiple *v* can be used.
+ The following levels are available:
+ * *-v1*, *-v*
+ only messages and errors;
+ * *-v2*, *-vv*
+ also warnings (default level);
+ * *-v3*, *-vvv*
+ also information messages and timestamps;
+ * *-v4*, *-vvvv*
+ lots of debug.
-*cpuinfo* *dump*::
-Writes information about currently running CPU and its features into an image.
+*--pidfile* 'file'::
+ Write root task, service or page-server pid into a 'file'.
-*cpuinfo* *check*::
-Reads information about CPU from an image file and checks if it is compatible
-with currently running CPU.
+*-o*, *--log-file* 'file'::
+ Write logging messages to 'file'.
-OPTIONS
--------
-*-c*::
- In case of *show* command the dumped pages content will be shown in hex format.
+*--log-pid*::
+ Write separate logging files per each pid.
*-D*, *--images-dir* 'path'::
- Use path 'path' as a base directory where to look for dump files set. This
- commands applies to any 'command'.
+ Use path 'path' as a base directory where to look for dump files set.
*--prev-images-dir* 'path'::
- Use path 'path' as a parent directory where to look for dump files set. This
- make sence in case of increment dumps.
+ Use path 'path' as a parent directory where to look for dump files set.
+ This make sence in case of increment dumps.
*-W*, *--work-dir* 'dir'::
Use directory 'dir' for putting logs, pidfiles and statistics. If not
specified, 'path' from *-D* option is taken.
-*-s*, *--leave-stopped*::
- Leave tasks in stopped state after checkpoint instead of killing them.
+*--close* 'fd'::
+ Close file with descriptor 'fd' before any actions.
+
+*-L*, *--libdir* 'path'::
+ Path to a plugins directory.
+
+*--action-script* 'SCRIPT'::
+ Add an external action script.
+ The environment variable *CRTOOLS_SCRIPT_ACTION* contains one of the
+ actions:
+ * *post-dump*
+ run an action upon *dump* completion;
+
+ * *post-restore*
+ run an action upon *restore* completion;
+
+ * *network-lock*
+ lock network in a target network namespace;
+
+ * *network-unlock*
+ unlock network in a target network namespace;
+
+ * *setup-namespaces*
+ run an action once root task just been created
+ with required namespaces, note it is early stage
+ on restore nothing were restored yet except namespaces
+ themselves.
+
+*-V*, *--version*::
+ Print program version and exit.
+
+*-h*, *--help*::
+ Print inline help and exit.
+
+*pre-dump*
+~~~~~~~~~~
+Launches that named pre-dump procedure, where *criu* does snapshot of
+memory changes since previous pre-dump. Also *criu* forms fsnotify
+cache which speedup *restore* procedure. *pre-dump* requires at least
+*-t* option (see *dump* below). Optionally *page-server* options
+may be specified.
+
+*--track-mem*::
+ Turn on memory changes tracker in the kernel. If the option is
+ not passed the memory tracker get turned on implicitly.
+
+*dump*
+~~~~~~
+Starts a checkpoint procedure.
+
+*-t*, *--tree* 'pid'::
+ Checkpoint the whole process tree starting from 'pid'.
*-R*, *--leave-running*::
Leave tasks in running state after checkpoint instead of killing them. This
@@ -88,46 +129,74 @@ OPTIONS
done with help of 'post-dump' script.
In other words, do not use it until really needed.
-*--cpu-cap* [,'cap']::
- When restore process require 'cap' CPU capability to be present. To inverse
- capability prefix it with '^'.
+*-s*, *--leave-stopped*::
+ Leave tasks in stopped state after checkpoint instead of killing them.
- - 'all'. Require all capabilities. This is *default* mode if *--cpu-cap*
- is passed without arguments. Most safe mode.
+*-x*, *--ext-unix-sk*::
+ Dump external unix sockets.
- - 'cpu'. Require the CPU to have all capabilities match. On *dump* the
- capabilities are writen into image file and on *restore* they
- are validated to match ones present on runtime CPU.
+*-n*, *--namespaces* 'ns'[,'ns'...]::
+ Checkpoint namespaces. Namespaces must be separated by comma.
+ Currently supported namespaces: *uts*, *ipc*, *mnt*, *pid*, *net*.
- - 'fpu'. Requre the CPU to have comaptible FPU. For example the process
- might be dumped with xsave capability but attempted to restore
- without it present on target CPU. In such case we refuse to
- procceed. This is *default* mode if *--cpu-cap* is not present
- in command line.
+*--manage-cgroups*::
+ Collect cgroups into the image thus they gonna be restored then.
+ Without this argument *criu* won\'t save cgroups configuration
+ associated with a task.
- - 'ins' Only require CPU compatibility on instructions level. On *dump*
- all capabilities are writen into image file and on *restore*
- only subset related to CPU instructions tested if target CPU
- supports them. Unlike 'cpu' mode the target CPU may have more
- features than ones present in image file.
+*--tcp-established*::
+ Checkpoint established TCP connections.
- - 'none'. Ignore capabilities. Most dangerous mode. The behaviour is
- implementation dependent. Try to not use it until really
- required. One possible need of using this option is when
- *--cpu-cap*='cpu' has been passed on *dump* then images are
- migrated to a less capable processor and one need to *restore*
- this application, by default *criu* will refuse to proceed without
- relaxing capability with *--cpu-cap*='none' parameter.
+*--veth-pair* 'IN'*=*'OUT'::
+ Correspondence between outside and inside names of veth devices.
-*-f*, *--file* 'file'::
- This option is valid for the *show* command only and allows one to see the
- content of the 'file' specified.
+*--evasive-devices*::
+ Use any path to a device file if the original one is inaccessible.
-*-x*, *--ext-unix-sk*::
- Dump external unix sockets.
+*--page-server*::
+ Send pages to a page server (see *page-server* command).
-*-t*, *--tree* 'pid'::
- Checkpoint the whole process tree starting from 'pid'.
+*--force-irmap*::
+ Force resolving names for inotify and fsnotify watches.
+
+*--auto-dedup*::
+ Deduplicate "old" data in pages images of previous *dump*. Which implies
+ incremental *dump* mode (see *pre-dump* command).
+
+*-l*, *--file-locks*::
+ Dump file locks. It is necessary to make sure that all file lock users
+ are taken into dump, so it is only safe to use this for enclojured containers
+ where locks are not holed by someone outside of it.
+
+*-M*, *--ext-mount-map* 'KEY'*:*'VAL'::
+ Setup mapping for external mounts. 'KEY' is a mountpoint inside container
+ and corresponding 'VAL' is a string that will be written into the image
+ as mountpoint\'s root value.
+
+*--link-remap*::
+ Allow to link unlinked files back when possible (modifies FS till *restore*).
+
+*-j*, *--shell-job*::
+ Allow to dump shell jobs. This implies the restored task will inherit session and
+ process group ID from the criu itself. Also this option allows one to migrate a
+ single external tty connection, in other words this option allows one to migrate
+ such application as *top* and friends. If passed on *dump* it must be
+ specified on *restore* as well.
+
+*--cpu-cap* [,'cap']::
+ Specify 'cap' CPU capability to be written into an image file. Basically
+ if 'cap' is one of 'all', 'cpu' or 'ins', then *criu* writes CPU related
+ information into image file. If the option is omitted or set to 'none'
+ then image won\'t be written. By default *criu* do not write this image.
+
+*restore*
+~~~~~~~~~
+Restores previously checkpointed processes.
+
+*--inherit-fd* 'fd[num]:existing'::
+ Inherit file descriptors. This allows to treat file descriptor 'num' as
+ being already opened via 'existing' one and instead of trying to open we
+ inherit it.
*-d*, *--restore-detached*::
Detach *criu* itself once restore is complete.
@@ -135,143 +204,144 @@ OPTIONS
*-S*, *--restore-sibling*::
Restore root task as a sibling (make sense with *--restore-detached*) only.
-*-n*, *--namespaces* 'ns'[,'ns'...]::
- Checkpoint namespaces. Namespaces must be separated by comma.
- Currently supported namespaces: *uts*, *ipc*, *mnt*, *pid*, *net*.
-
*-r*, *--root* 'path'::
Change the root filesystem (when run in mount namespace).
-*--evasive-devices*::
- Use any path to a device file if the original one is inaccessible.
+*--manage-cgroups*::
+ Restore cgroups configuration associated with a task from the image.
-*--pidfile* 'file'::
- Write root task, service or page-server pid into a 'file'.
+*--cgroup-root* '[controller:]/newroot'::
+ Change the root cgroup the controller will be installed into. No controller
+ means that root is the default for all controllers not specified.
+
+*--tcp-established*::
+ Restore previously dumped established TCP connections. This implies that
+ the network has been locked between *dump* and *restore* phases so other
+ side of a connection simply notice a kind of lag.
*--veth-pair* 'IN'*=*'OUT'::
Correspondence between outside and inside names of veth devices.
-*-M*, *--ext-mount-map* 'KEY'*:*'VAL'::
- Setup mapping for external mounts.
-
- On dump, KEY is a mountpoint inside container and corresponding VAL
- is a string that will be written into the image as mountpoint's root
- value
+*-l*, *--file-locks*::
+ Restore file locks from the image.
- On restore KEY is the value from the image (VAL from dump) and the
- VAL is the path on host that will be bind-mounted into container
- (to the mountpoint path from image)
+*-M*, *--ext-mount-map* 'KEY'*:*'VAL'::
+ Setup mapping for external mounts. 'KEY' is the value from the image
+ ('VAL' from dump) and the 'VAL' is the path on host that will be
+ bind-mounted into container (to the mountpoint path from image).
- A special case is `--ext-mount-map auto`. If this flag is passed, when an
- external mount is missing from the command line --ext-mount-map KEY:VAL
- syntax, criu attempts to automatically resolve this mount from its
- namespace.
+*--ext-mount-map* 'auto'::
+ This is a special case. If this flag is passed, when an external
+ mount is missing from the command line '*--ext-mount-map* KEY:VAL' syntax,
+ criu attempts to automatically resolve this mount from its namespace.
*--enable-external-sharing*, *--enable-external-masters*::
These flags enable external shared or slave mounts to be resolved
- automatically when `--ext-mount-map auto` is passed.
+ automatically when '*--ext-mount-map* auto' is passed.
-*--action-script* 'SCRIPT'::
- Add an external action script.
- The environment variable *CRTOOLS_SCRIPT_ACTION* contains one of the
- actions:
- * *network-lock*
- lock network in a target network namespace
+*--auto-dedup*::
+ As soon as a page is restored it get punched out from image.
- * *network-unlock*
- unlock network in a target network namespace
-
-*--link-remap*::
- Allow to link unlinked files back when possible (modifies FS
- till restore).
+*-j*, *--shell-job*::
+ Restore shell jobs, in other words inherit session and process group
+ ID from the criu itself.
-*-o*, *--log-file* 'file'::
- Write logging messages to 'file'.
+*--cpu-cap* [,'cap']::
+ Specify 'cap' CPU capability to be present on the CPU the process is
+ restoring. To inverse capability prefix it with '^'. This option implies
+ that *--cpu-cap* has been passed on *dump* as well, except 'fpu' option
+ case.
-*-v*['num'|*v*...]::
- Set logging level to 'num'. The higer the level, the more output
- is produced. Either numeric values or multiple *v* can be used.
- The following levels are available:
- * *-v1*, *-v* - only messages and errors;
- * *-v2*, *-vv* - also warnings (default level);
- * *-v3*, *-vvv* - also information messages and timestamps;
- * *-v4*, *-vvvv* - lots of debug.
+ - 'all'. Require all capabilities. This is *default* mode if *--cpu-cap*
+ is passed without arguments. Most safe mode.
-*--log-pid*::
- Write separate logging files per each pid.
+ - 'cpu'. Require the CPU to have all capabilities in image to match
+ runtime CPU>
-*--close* 'fd'::
- Close file with descriptor 'fd' before anything else.
+ - 'fpu'. Requre the CPU to have comaptible FPU. For example the process
+ might be dumped with xsave capability but attempted to restore
+ without it present on target CPU. In such case we refuse to
+ procceed. This is *default* mode if *--cpu-cap* is not present
+ in command line. Note this argument might be passed even if
+ on the *dump* no *--cpu-cap* have been specified becase FPU
+ frames are always encoded into images.
-*--tcp-established*::
- Checkpoint/restore established TCP connections.
+ - 'ins' Require CPU compatibility on instructions level.
-*-j*, *--shell-job*::
- Allow to dump and restore shell jobs. This implies the restored task
- will inherit session and process group ID from the criu itself.
- Also this option allows one to migrate a single external tty connection, in other
- words this option allows one to migrate such application as *top* and friends.
+ - 'none'. Ignore capabilities. Most dangerous mode. The behaviour is
+ implementation dependent. Try to not use it until really
+ required. One possible need of using this option is when
+ *--cpu-cap*='cpu' has been passed on *dump* then images are
+ migrated to a less capable processor and one need to *restore*
+ this application, by default *criu* will refuse to proceed without
+ relaxing capability with *--cpu-cap*='none' parameter.
-*-l*, *--file-locks*::
- Allow to dump and restore file locks. It is necessary to make sure that
- all file lock users are taken into dump, so it is only safe to use this
- for a container dump/restore.
+*check*
+~~~~~~~
+Tests wheter the kernel support is up to date.
*--ms*::
- In case of *check* command does not try to check for features which are
- known to be not yet merged upstream.
+ Do not check not yet merged features.
-*--track-mem*::
- Turn on memory changes tracker in kernel.
+*--feature* 'name'::
+ Check a particular feature. Instead of checking everything one may specify
+ which exactly feature is to be tested. The 'name' may be: 'mnt_id',
+ 'aio_remap', 'timerfd', 'tun', 'userns'.
-*--auto-dedup::
- When used on *dump* it will deduplicate "old" data in pages images of
- previous dump. When used on *restore*, as soon as page is restored, it
- will be punched from the image.
+*page-server*
+~~~~~~~~~~~~~
+Launches *criu* in page server mode. FIXME: write about directories.
-*--page-server*::
- In case of *dump* command sends pages to a page server.
+*--daemon*::
+ Runs page server as a daemon (background process).
*--address* 'address'::
- Page server address.
+ Page server IP address.
*--port* 'number'::
Page server port number.
-*-L*, *--libdir* 'path'::
- Path to a plugins directory.
+*exec*
+~~~~~~
+Executes a system call inside a destination task\'s context.
-*--force-irmap*::
- Force resolving names for inotify and fsnotify watches.
+*service*
+~~~~~~~~~
+Launches *criu* in RPC daemon mode where *criu* is listeninп for
+RPC commands over socket to perform. This is convenient for the
+case where daemon itself is running in a privilege (superuser) mode
+but clients are not.
-*--manage-cgroups*::
- Dump or restore cgroups the process is in.
-
-*--cgroup-root* '[controller:]/newroot'::
- Change the root cgroup the controller will be installed into. No controller
- means that root is the default for all controllers not specified.
+dedup
+~~~~~
+Starts pagemap data deduplication procedure, where *criu* scans over all
+pagemap files and tries to minimalize the number of pagemap entries by
+obtaining the references from a parent pagemap image.
-*--inherit-fd* 'fd[num]:existing'::
- Inherit file descriptors on *restore*. This allows to treat file descriptor
- 'num' as being already opened via 'existing' one and instead of trying to
- open we inherit it.
+*cpuinfo* *dump*
+~~~~~~~~~~~~~~~~
+Fetches current CPU features and write them into an image file.
-*-V, *--version*::
- Print program version.
+*cpuinfo* *check*
+~~~~~~~~~~~~~~~~~
+Fetches current CPU features (ie CPU the *criu* is running on) and test if
+they are compatible with ones present in image file.
-*-h*, *--help*::
- Print inline help.
SYSCALLS EXECUTION
------------------
-To run a system call from another task\'s context use
+To run a system call in another task\'s context use
+----------
criu exec -t pid syscall-string
+----------
command. The 'syscall-string' should look like
+----------
syscall-name syscall-arguments ...
+----------
Each command line argument is transformed into the system call argument by
the following rules:
@@ -283,33 +353,40 @@ the following rules:
* Otherwise it is treated as a number (converted with strtol) and is directly
passed into the system call.
+
EXAMPLES
--------
-
To checkpoint a program with pid of *1234* and write all image files into
directory *checkpoint*:
+----------
criu dump -D checkpoint -t 1234
+----------
To restore this program detaching criu itself:
+----------
criu restore -d -D checkpoint
-
+----------
To close a file descriptor number *1* in task with pid *1234*:
+----------
criu exec -t 1234 close 1
+----------
-To open a file named */foo/bar* for read-write in the task with pid
-*1234*:
+To open a file named */foo/bar* for read-write in the task with pid *1234*:
+----------
criu exec -t 1234 open '&/foo/bar' 2
+----------
AUTHOR
------
OpenVZ team.
+
COPYRIGHT
---------
-Copyright \(C) 2011-2013, Parallels Inc.
+Copyright \(C) 2011-2015, Parallels Inc.
--
2.1.0
More information about the CRIU
mailing list