我想知道这是否可能。我希望用户能够在我们的一些主机上启动屏幕,以便多路复用他们的终端登录会话。但是,我不希望他们能够分离屏幕并让它在后台运行。
这样做的原因是登录到这些机器的唯一方法是通过集群作业提交系统,所以如果屏幕分离并且用户注销,唯一的返回方法是如果他们碰巧重新登陆下一个作业提交的相同节点。
我想知道这是否可能。我希望用户能够在我们的一些主机上启动屏幕,以便多路复用他们的终端登录会话。但是,我不希望他们能够分离屏幕并让它在后台运行。
这样做的原因是登录到这些机器的唯一方法是通过集群作业提交系统,所以如果屏幕分离并且用户注销,唯一的返回方法是如果他们碰巧重新登陆下一个作业提交的相同节点。
您可以通过放置来“软”禁用分离
in
.screenrc
,它删除了用于分离的默认 ^AD 键绑定。或者可能对分离进行硬禁用,包括命令行表单,将需要分叉您自己的版本
screen
并编写该功能。你知道,这是可以做到的,它是一个开源项目。这是一个可以放入 bash 脚本并使用 cron 每分钟运行以终止分离会话的hack 。虽然不是最干净的解决方案:-P
阅读自动分离的屏幕手册页。这将确保如果他们的连接被禁用,它会简单地杀死所有东西。
您仍然需要提到的其他解决方案...
他们将始终能够在不关闭终端的情况下断开连接,除非您当然将自动杀死功能侵入屏幕。
由于分离屏幕使用户保持登录状态,因此您可以在登录脚本中添加一个检查以查看用户已经登录到哪个服务器。这将比仅仅禁用分离更多的工作,但对您的用户更有用。
脚本的一个想法:遍历服务器,
grep
获取 的 outpotwho
,然后将用户登录到报告他们首先登录的服务器;否则,像现在一样登录它们(以在用户干净地注销时处理)。