国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

深究Runc源碼-5-Exec流程分析

2022-11-16 18:29 作者:黑暗光影DIY  | 我要投稿

代碼基于1.1.0

runc exec在容器中啟動(dòng)另一個(gè)進(jìn)程。流程類似runc start和runc create的部分融合,首先類似runc start 通過(guò)getContainer重新構(gòu)建Container實(shí)例,再根據(jù)命令行參數(shù)構(gòu)建新Process實(shí)例,最后組成runner

例如執(zhí)行runc exec mycontainer bash

Process實(shí)例如下,相較于create流程,Init字段為false

runner實(shí)例如下,相較于create流程,action為CT_ACT_RUN

runner.run流程同create,區(qū)別在于action為CT_ACT_RUN,流程走到了Container.Run

Container.Run流程如下,同create,流程走到了Container.Start,Container.Start流程中相較于create流程,區(qū)別在于流程都走到了Init false的分支

在構(gòu)建parentProcess時(shí),實(shí)例化的是setnsProcess,如下

setnsProcess 執(zhí)行runc init流程同runc create,但區(qū)別是nsexec收到的config.cloneflags是0,config.namespaces是runc create時(shí) runc init創(chuàng)建的namespaces,會(huì)調(diào)用join_namespaces setns將進(jìn)程加入到 create時(shí)創(chuàng)建的namespaces,例如: ? ? ?

在newContainerInit邏輯中,根據(jù)initType==setns,實(shí)例化linuxSetnsInit對(duì)象,如下:

最后調(diào)用system.Execv執(zhí)行Process

開源的東西,不需要說(shuō)明出處,就說(shuō)你自己寫的

深究Runc源碼-5-Exec流程分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
西乌珠穆沁旗| 屯昌县| 郑州市| 石城县| 红原县| 揭东县| 虹口区| 耒阳市| 贵德县| 晋城| 应城市| 承德县| 西畴县| 界首市| 长汀县| 德昌县| 西城区| 元谋县| 永川市| 灵寿县| 河间市| 鱼台县| 含山县| 饶阳县| 沾益县| 揭阳市| 怀来县| 滦平县| 彭山县| 辉县市| 临沭县| 军事| 玉树县| 历史| 唐海县| 磐安县| 济阳县| 西华县| 米泉市| 望奎县| 漠河县|