允许使用无法分离会话的屏幕

我想知道这是否可能。 我希望用户能够在我们的一些主机上启动屏幕,以便复用他们的terminallogin会话。 但是,我不希望他们能够分离屏幕,并让它在后台运行。

这是因为login这些机器的唯一方法是通过一个集群作业提交系统,所以如果一个屏幕变得分离,用户注销唯一的方法是如果他们碰巧返回同一个节点在他们的下一个工作提交。

  • 是否有可能从terminal上分离进程? (或者,“我应该使用屏幕!”)
  • GNU屏幕configuration,以获得最佳的键码识别
  • 从屏幕会话获取硬拷贝
  • 屏幕-R不工作与SSH
  • 如何重新加载screenrc而不重新启动屏幕?
  • 为什么在.screenrc不支持采购?
  • 5 Solutions collect form web for “允许使用无法分离会话的屏幕”

    echo autodetach off >> ~/.screenrc 

    阅读屏幕手册页以获取autodetach。 这将确保它只是简单地杀死所有的连接被禁用。

    你仍然需要提到的其他解决scheme…

    你可以做一个“软”禁用分离通过放置

     bind d 

    .screenrc ,它删除了用于分离的默认^ AD键绑定。 或者可能

     bind d echo Don't detach screens, it won't work because of the cluster. 

    要强制禁用分离(包括命令行表单),需要分叉你自己的screen版本并编写出能力。 哪个,你知道,可以做,它是一个开源项目和所有。

    这里是一个黑客,你可以把它放到一个bash脚本中,用cron运行每一分钟来杀死分离的会话。 不是最干净的解决scheme:-P

     screen -S $(screen -ls | grep Detached | awk '{ print $1}') -X kill 

    他们总是能够断开而不closures他们的terminal,除非你自动杀入屏幕当然。

    由于分离屏幕使用户login,您可以在login脚本中添加一个检查来查看用户已经login到哪个服务器。 这将比停用detach更有效,但对用户来说更有用。

    对于脚本的一个想法是:遍历服务器,清点who ,然后将用户login到报告他们login的服务器; 否则,请按照他们现在的方式login(在用户完全注销时处理)。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.