我有个问题screen
。基本上,我希望它为每个屏幕生成一个日志,例如屏幕 #1 将是screenlog.1
& 屏幕 #2 将是screenlog.2
- 您收到了备忘录。
无论如何,当我使用以下命令启动屏幕时,会发生什么:
screen -SL screen1
(-L
参数是因为我需要强制它生成日志)它只记录第一个屏幕,而不是其余 2-5 个屏幕。我尝试使用.screenrc
带有logfile
参数的文件,它可以工作 - 但只是更改了 的名称screenlog.0
,这不是我真正想要的。
你知道我该如何处理这个问题吗?
附加信息:CentOS 6.3 (64位)。屏幕版本 4.00.03 (FAU) 2006 年 10 月 23 日。
答案1
您可以将多个屏幕会话的输出记录到单独的日志文件中,如下所示:
- 使用以下方式启动 screen 会话
screen -S <preferred-name-of-session>
- 使用 & 连接屏幕,然后使用以下命令设置屏幕的日志文件:
Ctrl + a :logfile <name-of-log-file>
- 通过运行开始屏幕记录
Ctrl + a H
- 执行所需程序然后分离屏幕
每次这看起来似乎很繁琐,但是一旦开始使用它,它就会变得非常方便!
答案2
您可能正在经历日志输出缓冲。
我在本地测试了带和不带屏幕名称的情况,并收到了预期的 screenlog.0、.1 和 .2 等。每个日志都对应每个窗口的内容。在写入磁盘之前有一个缓冲区
参考冲洗秒数: http://www.gnu.org/software/screen/manual/screen.html#Logging
答案3
此外splaer 说过的话(这可能就是这里发生的事情),你可能需要使用script
记录您的会话,如果screen
给您带来麻烦。
方便screen -L
是好事,但如果它给你带来麻烦,script
这是一个方便的解决方法(如果你发现自己在机器上没有 screen
——遗憾的是它们仍然存在——很可能script
还会在那里。