我在 Ubuntu 16.04 上使用 screen 命令时遇到问题。我正在开发一个 C++ 项目,并使用装有 Ubuntu 的服务器来模拟我的代码。从 Ubuntu 14.04 更新到 16.04 后开始出现分段错误。当尝试在装有 Ubuntu 14 和 16.04 的不同服务器上模拟相同的代码时,经过一段时间(通常是 12 小时的模拟)后,装有 Ubuntu 16.04 的服务器上会出现分段错误,而 Ubuntu 14.04 上不会出现任何问题。此外,如果不使用 screen 命令,而直接在 shell 终端上运行模拟命令,则可以在 Ubuntu 16.04 上进行相同的模拟,而不会出现任何问题。我想知道 Ubuntu 16.04 中的 screen 命令是否有任何超时选项可以停止我的模拟。
答案1
我们找到了一个解决方案,如果它可以帮助遇到同样问题的人,我会发布。
问题在于屏幕或 tmux 会话中的 kerberos 票证过期。kerberos 票证用于挂载 nfsv4 文件夹,程序会将一些文件写入该文件夹,因此 12 小时后票证过期,程序会尝试写入无法访问的文件并导致段错误。我们的服务器在 ubuntu 16.04 上使用 nfsv4,在 ubuntu 14.04 上使用 nfsv3...
解决方案是在 screen/tmux 会话中,使用以下命令启动程序:krenew -K 60 ./a.out