挂载proc
文件系统
前文中已经提到,如果你在新的PID namespace中使用ps
命令查看,看到的还是所有的进程,因为与PID直接相关的/proc
文件系统(procfs
)没有挂载到与原/proc
不同的位置。所以如果你只想看到PID namespace本身应该看到的进程,需要重新挂载/proc
,命令如下。
1
2
3
4
5
|
root@NewNamespace:~# mount -t proc proc /proc
root@NewNamespace:~# ps a
PID TTY STAT TIME COMMAND
1 pts/1 S 0:00 /bin/bash
12 pts/1 R+ 0:00 ps a
|
可以看到实际的PID namespace就只有两个进程在运行。
注意:因为此时我们没有进行mount namespace的隔离,所以这一步操作实际上已经影响了 root namespace的文件系统,当你退出新建的PID namespace以后再执行ps a
就会发现出错,再次执行mount -t proc proc /proc
可以修复错误。