![中断进程的挂载命名空间会发生什么](https://linux22.com/image/11528/%E4%B8%AD%E6%96%AD%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%8C%82%E8%BD%BD%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88.png)
我正在尝试安装命名空间。我有一个 python 脚本,它创建一个绑定挂载,然后使用unshare
系统调用创建一个挂载命名空间。我打印 PID,然后暂停脚本。我可以列出安装:
nsenter --mount=/proc/PID/ns/mnt
mount
让 python 进程在调用之前被中断umount
(或者假设它由于某些错误而终止)。现在/proc/PID
消失了。系统会处于一致的状态吗?我的意思是会umount
自动调用,还是会以其他方式“清理”安装座?
答案1
与任何其他命名空间一样,一旦其所有成员进程退出,挂载命名空间就会被删除(除非它通过绑定挂载保持活动状态:请参阅man 7 namespaces
,搜索“绑定挂载”),并且当挂载点被删除时,其所有挂载都会被删除。隐式卸载,请参阅man 7 mount_namespaces
:
当以下情况时,挂载不再是对等组的成员……挂载被隐式卸载,因为挂载命名空间已被删除(因为它不再有成员进程)。