提交 f96cd890 编写于 作者: K Katerina Koukiou 提交者: Daniel P. Berrange

lxc: make container's init process session leader

This patch forces container's init process, to become a session leader,
that is its session ID is made the same as its process ID.
That might seem unnecessary in general, but if we want to checkpoint a
container with CRIU, which is needed for container migration,
we must ensure that the SID of each process inside the container points
to a process that lives in the same PID namespace as the container.
Therefore, we force that the session leader is the init.
Signed-off-by: NKaterina Koukiou <k.koukiou@gmail.com>
上级 815d98ac
......@@ -2245,6 +2245,15 @@ static int lxcContainerChild(void *data)
argv->npassFDs, argv->passFDs) < 0)
goto cleanup;
/* Make init process of the container the leader of the new session.
* That is needed when checkpointing container.
*/
if (setsid() < 0) {
virReportSystemError(errno, "%s",
_("Unable to become session leader"));
goto cleanup;
}
ret = 0;
cleanup:
VIR_FREE(ttyPath);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册