Not doing this can be a pain for restarted software which relies on
proc...

Signed-off-by: root <[email protected]>
---
 restart.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/restart.c b/restart.c
index d25561a..cefe639 100644
--- a/restart.c
+++ b/restart.c
@@ -1005,6 +1005,13 @@ static int ckpt_probe_child(pid_t pid, char *str)
 static int __ckpt_coordinator(void *arg)
 {
        struct ckpt_ctx *ctx = (struct ckpt_ctx *) arg;
+       int ret;
+
+       ret = mount("proc", "/proc", "proc", 0, NULL);
+       if (ret) {
+               perror("mount -t proc proc /proc");
+               exit(1);
+       }
 
        if (!ctx->args->wait)
                close(ctx->pipe_coord[0]);
@@ -1869,6 +1876,13 @@ int ckpt_fork_stub(void *data)
        struct task *task = (struct task *) data;
        struct ckpt_ctx *ctx = task->ctx;
 
+       if (task->flags & TASK_NEWPID) {
+               int ret = mount("proc", "/proc", "proc", 0, NULL);
+               if (ret) {
+                       perror("mount -t proc");
+                       exit(1);
+               }
+       }
        /*
         * In restart into a new pid namespace (--pidns), coordinator
         * is the container init, hence if it terminated permatutely
-- 
1.6.4.4

_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to