<div dir="ltr">Yes it can be done in 3 steps:<div><br></div><div>1) Build nsinit</div><div># creates test_cr directory and puts all source files there</div><div># view/edit criu arguments (e.g., --shell-job) in test_cr/src/<a href="http://github.com/docker/libcontainer.go">github.com/docker/libcontainer.go</a></div><div>$ ./build_nsinit.sh</div><div><br></div><div>2) Start a container</div><div># screates busybox_cr directory</div><div>$ ./start_container.sh</div><div><br></div><div>3) Checkpoint (or restore) a container</div><div># on a different terminal</div><div>$ cd busybox_cr<br></div><div>$ sudo nsinit -criu /path/to/criu checkpoint (restore)</div><div><br></div><div>Notice that because checkpoint terminates the process, the existing code removes the directory where CRIU image files are.  Just comment out the call to os.RemoveAll():</div><div><br></div><div>diff --git a/container_linux.go b/container_linux.go</div><div>index 1bce2b7..a6ab67d 100644</div><div>--- a/container_linux.go</div><div>+++ b/container_linux.go</div><div>@@ -226,9 +226,11 @@ func (c *linuxContainer) Destroy() error {</div><div>                }</div><div>        }</div><div>        err = c.cgroupManager.Destroy()</div><div>+       /*</div><div>        if rerr := os.RemoveAll(c.root); err == nil {</div><div>                err = rerr</div><div>        }</div><div>+       */</div><div>        c.initProcess = nil</div><div>        return err</div><div> }</div><div><br></div><div>Please don&#39;t hesitate to let me know if you have any questions.<br></div><div><br></div><div>--Saied</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 10, 2015 at 12:41 PM, Cyrill Gorcunov <span dir="ltr">&lt;<a href="mailto:gorcunov@gmail.com" target="_blank">gorcunov@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Mar 10, 2015 at 12:38:39PM -0700, Saied Kazemi wrote:<br>
&gt;    Yup, ttys are painful :(  I&#39;ll dig deeper too and check back with you. <br>
&gt;    Please let me know if you need instructions to reproduce the problem.<br>
<br>
</span>Look, this would be great if the problem could be reproduced with some<br>
minimum set of tools, is it possible?<br>
</blockquote></div><br></div>