Failed to move to new PID namespace 解决方法

在OpenVZ的虚拟机上开了一个chromium,结果发现chromium的进程在不停地创建,但是就是没有窗口弹出来,起初以为是网卡,VNC没显示出来,后来看了看进程,就知道真的是挂了。当时也觉得奇怪,就在命令行下启动了chromium,的到了如下的错误信息:
Failed to move to new PID namespace: Operation not permitted chrome
瞬间明白了,这个涉及到chromium的机制。这里给大家科普一下。
Chromium在Linux上为了安全,使用了sandbox的机制,而且这里的sandbox使用了2层,这里我们涉及到的一层是第一层,setuid sandbox也叫做SUID sanbox,这一层的功能是限制Chromium访问绝大多数的资源。具体实现方法是创建了一个新的PID namespace,并且chroot()当前进程到一个空的目录下。这个功能本身是好的,安全性得到了大大的提高,但是对于OpenVZ的虚拟机问题就大了,本身OpenVZ就是一个Linux container,这里面是不允许创建新的namespace的,那么只能禁用这个功能,具体办法是在chromium启动的时候加上参数–no-sandbox.这就禁掉了sandbox的功能。安全性什么的见鬼去吧,能运行最重要。
如果只是这样还是不能运行的,还有一些权限上的小问题,比如/proc/cpuinfo和/dev/shm可能有权限问题,执行如下命令

sudo chmod 777 /proc/cpuinfo
sudo chmod 1777 /dev/shm

接下来再执行chromium应该是可以启动的,但是会弹出警告,无视就好。

Failed to move to new PID namespace 解决方法:等您坐沙发呢!

发表评论

表情
还能输入210个字