[CRIU] [PATCH vv 1/3] cr-restore: "post-resume" hook introduced

Stanislav Kinsburskiy skinsbursky at virtuozzo.com
Thu Apr 7 02:59:29 PDT 2016


This hook is called at the very end, when everything is restored and processes
were resumed.
Can be used for some actions, which require operation container, like
restarting of systemd autofs services.

v3:
Call "post-resume" scripts before detach option check (to make sure, that
restored process(es) are still alive

v2:
Remove code chunk, escaped from debugging

Signed-off-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
---
 criu/action-scripts.c         |    1 +
 criu/cr-restore.c             |    4 ++++
 criu/include/action-scripts.h |    1 +
 3 files changed, 6 insertions(+)

diff --git a/criu/action-scripts.c b/criu/action-scripts.c
index 05aa9d0..b1f7952 100644
--- a/criu/action-scripts.c
+++ b/criu/action-scripts.c
@@ -20,6 +20,7 @@ static const char *action_names[ACT_MAX] = {
 	[ ACT_NET_UNLOCK ]	= "network-unlock",
 	[ ACT_SETUP_NS ]	= "setup-namespaces",
 	[ ACT_POST_SETUP_NS ]	= "post-setup-namespaces",
+	[ ACT_POST_RESUME ]	= "post-resume",
 };
 
 int run_scripts(enum script_actions act)
diff --git a/criu/cr-restore.c b/criu/cr-restore.c
index 0720c07..10e8097 100644
--- a/criu/cr-restore.c
+++ b/criu/cr-restore.c
@@ -2195,6 +2195,10 @@ static int restore_root_task(struct pstree_item *init)
 
 	write_stats(RESTORE_STATS);
 
+	ret = run_scripts(ACT_POST_RESUME);
+	if (ret != 0)
+		pr_err("Post-resume script ret code %d\n", ret);
+
 	if (!opts.restore_detach && !opts.exec_cmd)
 		wait(NULL);
 
diff --git a/criu/include/action-scripts.h b/criu/include/action-scripts.h
index 8ffc2c5..4ab5d6d 100644
--- a/criu/include/action-scripts.h
+++ b/criu/include/action-scripts.h
@@ -18,6 +18,7 @@ enum script_actions {
 	ACT_NET_UNLOCK		= 5,
 	ACT_SETUP_NS		= 6,
 	ACT_POST_SETUP_NS	= 7,
+	ACT_POST_RESUME		= 8,
 
 	ACT_MAX
 };



More information about the CRIU mailing list