我正在部署脚本中使用屏幕来启动多个分离的进程。
例如 :
/usr/bin/screen -dmSL ${USER}_selenuim java -jar selenium-server-standalone.jar -role hub -servlets com.example.local
我看到的问题是,该服务将持续很长时间,并且根据要求输出非常详细,但是,创建的日志文件(screenlog.0)增长得非常大。
是否可以在达到一定大小后分割此日志文件或创建另一个日志文件没有停止并重新启动屏幕服务。或者其他一些组合来减少日志文件的大小。
我已经提到了屏幕手册但是我找不到答案..
答案1
我的版本screen
打开日志文件附加模式,因此任何写入始终位于文件当前大小的末尾。
这意味着您可以独立减小文件的大小,例如减小到 0,并且日志将从那里继续。您可以使用命令
truncate --size 0 screenlog.0
将文件缩小到大小 0。如果要保留文件内容,可以先复制文件内容。遗憾的是,当可能添加新数据并丢失新数据时,复制和截断之间会有一个很小的间隔。您可以在进程或屏幕进程上发出信号 SIGSTOP 和 SIGCONT,以在执行复制和截断时暂时暂停它们。
答案2
使用 mkfifo 创建一个名为 fifo 的文件,并将其设置为日志文件。现在您可以使用另一个进程读取 fifo 并放入符合任何条件的多个文件中。