在docker容器中使用exec命令之后,我可以使用主管检查获得PID。问题是,这个ID不是容器的本地ID,而是一个系统PID。所以我会得到类似于22620的东西,而码头容器中的PID是695。
我知道docker使用进程名称空间来隔离它的进程。因此,我已经尝试得到内部PID与cat /proc/22620/status | grep NSpid。这确实给了我我想要的PID:
NSpid: 22620 695
但是我需要解析这个字符串才能得到PID。是否有适当的方法来获得码头集装箱使用的PID?
PS。
我需要这个进程ID来终止由其他执行调用启动的进程。我不能杀死系统进程,因为它是根用户拥有的,我不能使用sudo。
发布于 2018-08-27 10:17:40
奥奇。使用cut从行中筛选节。
grep NSpid /proc/24918/status | cut -f3将从示例中给出695。
https://stackoverflow.com/questions/52021956
复制相似问题