CRtools is an utility to checkpoint/restore a process tree.
Tools installation
Get the latest release:
Tarball: | criu-4.0.tar.gz |
Version: | 4.0 "CRIUDA" |
Released: | 20 Sep 2024 |
GIT tag: | v4.0 |
.
Alternatively, use git.criu.org git repository. Clone this repo to test new functionality. Anything but master branch are development ones, don't refer on them.
Before building, make sure you have C bindings for Google's Protocol Buffers installed. In rpm-based world this is protobuf-c-devel
package.
Then run make
in the sources root.
Kernel configuration
The v3.5
upstream kernel already has most of the required functionality merged. Some is still out-of-tree though, so you might need to clone the linux-2.6-crtools.git, checkout the crtools-3.5 branch and compile the kernel.
Make sure you have the following options turned on:
- General setup -> Checkpoint/restore support (
CONFIG_CHECKPOINT_RESTORE
) - General setup -> open by fhandle syscalls (
CONFIG_FHANDLE
) - General setup -> Enable eventfd() system call (
CONFIG_EVENTFD
) - General setup -> Enable eventpoll support (
CONFIG_EPOLL
) - File systems -> Inotify support for userspace (
CONFIG_INOTIFY_USER
) - Networking support -> Networking options -> Unix domain sockets -> UNIX: socket monitoring interface (
CONFIG_UNIX_DIAG
) - Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface (
CONFIG_INET_DIAG
)
Note you might have to enable
- General setup -> Configure standard kernel features (expert users) (
CONFIG_EXPERT
)
option, which depends on
- General setup -> Embedded system (
CONFIG_EMBEDDED
)
(welcome to Kconfig reverse chains hell).
Checking how it works
You can first look into the ZDTM Test Suite which sits in the tests/zdtm/
directory.
Using CR tools
Please see Usage.