我想知道这是否可能。我希望用户能够在我们的一些主机上启动屏幕,以便多路复用他们的终端登录会话。但是,我不希望他们能够分离屏幕并让它在后台运行。
这样做的原因是登录这些机器的唯一方法是通过集群作业提交系统,因此如果屏幕分离并且用户注销,返回的唯一方法是他们碰巧重新登陆下一个作业提交的相同节点。
您可以通过放置“软”禁用分离
bind d
Run Code Online (Sandbox Code Playgroud)
in .screenrc,它删除了默认的 ^AD 分离键绑定。或者可能
bind d echo Don't detach screens, it won't work because of the cluster.
Run Code Online (Sandbox Code Playgroud)
对分离进行硬禁用,包括命令行形式,将需要分叉您自己的版本screen并编码出该功能。你知道,这是可以完成的,它是一个开源项目等等。
echo autodetach off >> ~/.screenrc
Run Code Online (Sandbox Code Playgroud)
阅读自动分离的屏幕手册页。这将确保它在连接被禁用时简单地杀死所有内容。
您仍然需要提到的其他解决方案......