我想使用 GNU screen 在串行控制台上以分离模式运行单个命令,并将其输出保存到运行 screen 的主机上的日志文件中。基本上,以下操作的非交互式等效项:
screen /dev/ttyUSB0 115200 # connect to serial console "/dev/ttyUSB0" using speed "115200"
ctrl+a H # start logging
some command
ctrl+a k y # quit
我知道如何在当前 shell 中以分离模式运行单个命令:
screen -d -m -L some command
# output is saved to screenlog.0
但我不明白如何在连接到串行控制台的同时做同样的事情。
我无法在串行端口上正确测试它,但我认为这可能有效:
我的版本
screen
接受一个参数-L
,即日志文件的名称。显然不是所有版本都可以。设置日志文件名的另一种方法是使用(如果可行)。在写入之前将输出缓冲一段时间。默认情况下超时为 10 秒,但请参阅更改。screen -S serial -X logfile filename
screen
logfile flush NN
-X
向正在运行的 发送命令screen
,并且stuff
,嗯,将给定的字符串“填充”为当前窗口中的输入。