CRIU is not so easy to be used as a standalone tool -- it works best integrated into other software. This page lists such software and provides details about the current status.
As of Virtuozzo/OpenVZ 7, CRIU is fully integrated and supported. Older OpenVZ releases used in-kernel checkpoint/restore functionality, now superseded by CRIU.
- Project homepage
- The tools version 1.1.0 fully supports CRIU to C/R LXC containers
- lxc-checkpoint man page
See also: LXC
- Project homepage
- Merged into libcontainer/runc
- Merged into Docker itself
- Preparations efforts done by Saied Kazemi
See also: Docker C/R
Tools and utilities
- Starting from v1.6 new images (v1.1) will be generated
- File utility starting from 5.23 will support these
- Jerome did this some time ago
See also: Screen
It would be nice to have bash (or other shell) to launch criu with
--restore-sibling option and get new kid processes from it. Right now we workaround it with "shell jobs".
See also: Shell jobs
The CRaC (Coordinated Restore at Checkpoint) Project researches coordination of Java programs with mechanisms to checkpoint (make an image of, snapshot) a Java instance while it is executing. Restoring from the image could be a solution to some of the problems with the start-up and warm-up times. The primary aim of the Project is to develop a new standard mechanism-agnostic API to notify Java programs about the checkpoint and restore events. Other research activities will include, but will not be limited to, integration with existing checkpoint/restore mechanisms and development of new ones, changes to JVM and JDK to make images smaller and ensure they are correct.
- Adrian Reber did first version of patches
- Subgraph OS is a desktop operation system uses containers for users applications.
SLURM workload manager
- Ruslan Kuprieiev plans to patch Weston to let CRIU C/R graphical apps
See also: X applications
Adrian suggested that migrating processes from one system to another works, depending on the process, pretty good. Migrating a process under systemd's control might be possible by just killing the process on the source side but it cannot become a child process of systemd on the destination of the migration without systemd knowing how to restore a process and thus making it a child process of systemd (--restore-sibling).