怎么实现pid隔离
在进行pid隔离之前我们要有一块可以存储文件的磁盘,我们怎么来得到这块磁盘呢,其实很简单.我们将一个文件进行挂载,不就相当于一个磁盘了吗.
下面我会一步一进行操作
第一步:
首先就是创建一个文件,这和我们平时用touch创建文件不同.我们用dd命令来创建文件
命令如下:dd if=dev/zero of=text.img bs=8k count=1024.
这样就创建好了一个8mb的文件,里面被空字节填充.
第二步:
将创建好的文件进行格式化,因为未格式化的文件系统是不能存储文件的.
命令如下:mkfs -t ext4 ./test.img.
这样就将文件给格式化了
第三步
就是将这个文件进行挂载,挂载之后就相当于磁盘了.挂载的意思就是可以理解为,我们的电脑插了一个U盘.这就是挂载.
在此之前,要先创建好挂载的目录命令如下
mkdir -p /data/testmymount
挂载的命令如下
mount ./test.img /data/testmymount
这样就将文件挂载上去了,我们可以使用一个命令
df命令,这个命令可以查看文件系统磁盘使用情况.
df -h
当输完这个命令回车后,就可以查看到一个路径:/data/testmymount还会有内存使用情况.
当准备好这些后就可以进行进程pid隔离了,即不共享pid(进程)空间.
第四步:
还要注意一点就是:当我们进行隔离的时候,是感受不到父进程的,也就是说我们要创建一个进程来分配这个挂载的文件系统的资源.既然要实现进程的隔离,我们还要将/proc这个文件目录里面的东西先挂载出去,就有了下面的命令.
unshare --fork --pid --mount-proc /bin/bash
然后执行ps -ef查看如下图
发现确实实现了隔离,但是这里要注意的是这里使用的/bin/bash如果退出xshell则隔离性会失效