首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从容器内部获取主机上的PID?

问从容器内部获取主机上的PID?
EN

Stack Overflow用户
提问于 2022-11-24 17:37:36
回答 1查看 40关注 0票数 0

在Linux之前,我能够从进程调度信息中从v4容器中获取主机PID。

例如,如果我在容器中运行sleep命令,并且本地PID为37,则可以通过以下方法检查主机上的实际PID:

代码语言:javascript
复制
root@helloworld-595777cb8b-gjg4j:/# head /proc/37/sched
sleep (27062, #threads: 1)

我可以在主机上验证PID 27062是否对应于容器内的进程。

代码语言:javascript
复制
root      27062  0.0  0.0   4312   352 pts/0    S    16:29   0:00 sleep 3000

我已经在RHEL7 (内核:Linux3.10)上用: 17.09.0-ce尝试了这一点。

我无法在RHEL8 (内核:Linux4.18)上用Docker : 20.10复制相同的结果。事实上,我总是从调度信息中得到局部PID。

代码语言:javascript
复制
/ # head /proc/8/sched
sleep (8, #threads: 1)

我可能错了,但我的假设是内核中的某些内容发生了更改,从而禁止获得主机PID。

那么问题是如何从容器中获取主机PID呢?

EN

回答 1

Stack Overflow用户

发布于 2022-11-25 16:16:34

commit 74dc3384fc79 ("sched/debug: Use task_pid_nr_ns in /proc/$pid/sched")在Linux4.14内核中修复了允许在容器中的/proc/ PID /sched中发现主机PID的错误(如果您愿意,也可以使用“功能”)。

由于更改,如果使用PID名称空间,容器将无法获得进程的主机PID (至少通过/proc/PID/sched)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74564522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档