ExecAttachCtr
-> handleTerminalAttach 设置当前terminal的属性
�-> Container.Exec
—> ExecCreate 创建一个session,但是还没启动
—> ExecStartAndAttach 启动session,同时attach上
—-> ociRuntime.ExecContainer 在容器内启动进程。
——> startExec
�——-> prepareProcessExec 返回 runc exec -p 需要的json文件
——-> startCommandGivenSelinux 启动conmon进程
——> attachToExec:”Attaching to container” 这个函数有点复杂,会和conmon交互,启动真正的进程。conmon会创建 attach UnixSocket文件,这个文件是对应 真正的进程的stdin、stdout、stderr。
——-> setupStdioChannels Interactive 模式下,把会当前进程的stdio和 启动的进程对应起来
———> redirectResponseToOutputStreams 读取attach UnixSocket文件 输出,输出当前的控制台,会区分stdout和stderr
�
�—-> readExecExitCode 等待exit文件生成,exit文件存储的是退出码�
�