checkpointer - primitive CRaC implementation

checkpointer provides checkpoint/restore hooks on CRIU as org.crac interface.
mvn package
See example.
You can build example with mvn package. Note that you have to run mvn package for checkpointer.
You can specify following agent option:
addr=<address>: Listen address.localhost:10095is set by default.shutdown=<true|false>: Shutdown agent thread when restre request finished.trueis set by default.shutdown_timeout=<seconds>: Shutdown timeout for agent thread.10is set by default.gc=<true|false>:trueif invokeSystem.gc()atbeforeCheckpoint.falseis set by default.
You can concatenate them with ,:
-javaagent:/path/to/checkpointer-0.1.0.jar=addr=localhost:10095,shutdown=true,shutdown_timeout=10
# Build checkpointer
mvn package
# Build example
cd example/simple
mvn package
# Run example
$JAVA_HOME/bin/java -javaagent:../../target/checkpointer-0.2.0.jar -jar target/checkpointer-example-0.1.0.jar
mkdir /path/to/checkpoint/dir
sudo ./bin/checkpointer.sh checkpoint [PID] /path/to/checkpoint/dir
sudo ./bin/checkpointer.sh restore /path/to/checkpoint/dir
- checkpointer provides
org.cracimplementation especiallyResourceandContext. You can create yourbeforeCheckpointandafterRestorehook. - checkpointer creates HTTP endpoint to accept hook request from externals.
criuruns with--action-script bin/checkpointer-actions.sh. checkpointer-actions.sh requests checkpointer to call hooks via REST API on checkpointer Java Agent:pre-dump:beforeCheckpointpost-resume:afterRestore
The GNU Lesser General Public License, version 3.0