我有一个安装了 Ubuntu 20.04 的工作站,在 ruby 脚本中生成 GNU 屏幕会话时遇到了问题。Ruby 脚本必须生成一个具有自定义名称的新 GNU 屏幕会话,并将新会话附加到 VNC 服务器进程。
这是代码。
在创建一个文件夹来复制 screen_rc 配置并存储 GNU screen 日志后,将生成一个新的 screen 会话,其中包含日志记录 (-L)、自定义名称 (-S)、分离模式 (-d)、跳过 STY 环境变量 (-m)。我引入了一些调试消息(例如 screen ls 命令),这些消息显示发出命令后没有生成会话。
这种行为很奇怪,因为相同的 Ruby 脚本在之前的 Ubuntu 版本(16.04 和 18.04)中运行良好。我注意到这些发行版之间的 GNU 屏幕版本有所不同:
Ubuntu 16.04:4.03.01
Ubuntu 18.04:4.06.02
Ubuntu 20.04:4.08.00
重新启动工作站后,脚本立即生效,但只是第一次运行。似乎有些事情仍未解决,但没有待处理的进程。
我找到了一个临时的解决方法,将屏幕版本降级到 4.03.01(Ubuntu 16.04),使得脚本也可以在 Ubuntu 20.04 中运行,但我想使用较新版本的 GNU 屏幕解决这个问题,以便在最新版本的 Ubuntu 上完全移植脚本。