mount --bind /dev 有时会“杀死”tty,直到卸载

mount --bind /dev 有时会“杀死”tty,直到卸载

我有一个脚本,它使用sudo mount --bind /dev other/dev,然后又使用sudo umount other/dev来卸载。经过一些随机的运行次数后,我们可能会以某种方式进入一个奇怪的状态,主 tty 停止存在,整个桌面环境开始出现故障(新应用程序无法启动,或者崩溃,Firefox 无法重新绘制页面并冻结等...)并且tty在我的终端中显示not a tty,并且终端无法打开新实例。我没有使用 ssh 或任何其他远程功能,因此我的本地终端的 tty 丢失是荒谬的。

修复它的唯一方法是重新启动或使用CTRL+ALT+F1或类似命令进入不同的 tty,登录并强制other/dev卸载(正常询问说它很忙)。此后,tty 神奇地恢复,一切恢复正常。我实际上只是dev为了获得另一个/dev/null,所以对我来说可能存在更简单的解决方法,但这仍然很奇怪!

能解释一下这种奇怪的行为吗?我使用的是 18.04.2 LTS。

答案1

如果的传播类型/dev是共享,则挂载和卸载操作将从复制到/dev/other/dev反之亦然,因此卸载将从绑定挂载后挂载的所有内容other/dev中卸载。/dev

other/dev为了解决这个问题,请在卸载之前设置传播类型:

mount --make-rprivate other/dev

相关内容