我正在学习 linux 核心,现在正在讨论命名空间主题。我尝试使用“unshare”命令只是为了掌握命名空间及其要点。问题是它没有,或者更有可能的是,我做错了什么。如果您能帮助我理解,我将不胜感激。我尝试在它自己的 PID 命名空间内执行 busybox sh 程序。我就是做这个的:
[ab@a ~]$ sudo unshare --pid busybox sh
/home/ab # ps
PID TTY TIME CMD
6014 pts/1 00:00:00 sudo
6016 pts/1 00:00:00 busybox
6026 pts/1 00:00:00 ps
Run Code Online (Sandbox Code Playgroud)
正如我从 ps 命令的输出中看到的那样,所有进程在新环境中都是可见的。当我检查新创建的进程和当前进程的 pid 命名空间 id 时,这一点得到了确认。见下文
[ab@a ~]$ ps -p 6016,$$
PID TTY TIME CMD
4604 pts/0 00:00:00 bash
6016 pts/1 00:00:00 busybox
[ab@a ~]$ sudo ls -l /proc/4604/ns
total 0
lrwxrwxrwx. 1 ab ab 0 Aug 8 23:49 ipc -> ipc:[4026531839]
lrwxrwxrwx. 1 ab …Run Code Online (Sandbox Code Playgroud)