No description
Find a file
Andrew Vagin c26da2fd59 file: add a general approach for inherited files
How to restore an external file? The problem is that a file
can be opened with different flags (O_APPNED, O_RDWR, O_RONLY,
etc). These flags can't be changed for a file descriptor, so
we can't just duplicate an inherit fd, when we meet an external
file.

A file is external, when we can't access them directly.
CRIU is able to restore a file descriptor, if it knows
how to open it, so we need to provide a way to open
an external file.

The idea of this patch is that we can open an external file
via /proc/self/fd/X where X is an inherit fd.

This approach works for files and fifo.

An example how it can be used:
criu -o dump.log -D dump/fifo.py/6/1 -v4 -t 6 --external file[72:a3e7]
criu -o restore.log -D dump/fifo.py/6/1 -v4 --restore-sibling --inherit-fd fd[4]:file[72:a3e7] --restore-detached

https://github.com/xemul/criu/issues/104

Cc: Saied Kazemi <saied@google.com>
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-02-17 13:50:39 +03:00
contrib Add OverlayFS support to docker_cr.sh 2015-08-18 18:14:32 +03:00
crit build: Move crit tool into crit directory 2016-02-15 15:32:42 +03:00
criu file: add a general approach for inherited files 2016-02-17 13:50:39 +03:00
Documentation seccomp: add a --no-seccomp option to disable dumping seccomp 2016-02-17 13:46:55 +03:00
images file: add a general approach for inherited files 2016-02-17 13:50:39 +03:00
lib seccomp: add a --no-seccomp option to disable dumping seccomp 2016-02-17 13:46:55 +03:00
scripts build: memfd -- Use SYS_memfd_create for libc sake 2016-02-16 10:47:51 +03:00
test gitignore: ignore more test dirs 2016-02-17 13:29:28 +03:00
.gitignore .gitignore -- Add back files to ignore 2016-02-15 19:21:12 +03:00
.mailmap repo: Add mailmap file 2012-03-25 23:31:20 +04:00
.travis.yml build: Fix travis arch 2016-02-17 13:26:39 +03:00
COPYING Add LGPL licence for library directory 2013-04-01 12:29:06 +04:00
CREDITS Add the CREDITS file 2012-07-30 13:52:37 +04:00
Dockerfile Revert "travis: install libseccomp-dev" 2015-07-14 18:28:05 +03:00
Makefile build: docs -- Call cleaning on general clean action 2016-02-16 10:47:25 +03:00
Makefile.install build: crit -- Fix install target 2016-02-15 15:32:53 +03:00
README.md Updated README 2015-05-19 22:38:06 +03:00

CRIU (Checkpoint and Restore in Userspace)

An utility to checkpoint/restore tasks. Using this tool, you can freeze a running application (or part of it) and checkpoint it to a hard drive as a collection of files. You can then use the files to restore and run the application from the point it was frozen at. The distinctive feature of the CRIU project is that it is mainly implemented in user space.

The project home is at http://criu.org.

Pages worth starting with are:

How to contribute