【问题标题】:How do I run the screen command in background and record data to log file?如何在后台运行 screen 命令并将数据记录到日志文件?
【发布时间】:2020-11-20 17:12:33
【问题描述】:

我有一个 Z Shell (zsh) 脚本,它执行一系列命令以在我的计算机 (Mac) 上安装设备。其中一个命令是从设备中读取 MAC 地址,设备在第一次开机后会执行此操作。

在设备通过 Serial 发送数据之前,设备上有一个延迟以允许执行串行捕获命令,我想捕获设备将打印出来的 MAC 地址,然后终止串行捕获(杀死过程)大约 5 秒后继续执行脚本。我正在尝试使用 screen 命令执行此操作。我可以记录到日志,但我不能在后台运行屏幕。

注意: -L 将文件写入名为screenlog.0 的日志中

我有以下命令来执行此操作。

screen -L /dev/tty.usbserial-D3086KU0 115200

但是,在末尾添加一个 & 符号并不会像我预期的那样在后台运行它。它仍然会将我带到屏幕上。

screen -L /dev/tty.usbserial-D3086KU0 115200 &

如何使屏幕工作并在后台捕获串行输出,或者如何使用其他等效项来实现这一点?

【问题讨论】:

    标签: shell terminal zsh


    【解决方案1】:

    老实说,我以前从未尝试过屏幕。但是,查看手册页,我看到了:

    -d -m 以“分离”模式启动屏幕。这会创建一个新会话,但不会附加到它。 这对系统启动很有用 脚本

    -D -m 这也会以“分离”模式启动屏幕,但不会派生新进程。如果会话终止,则命令退出

    我会试试这个:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 2022-08-17
      • 2012-11-08
      • 2016-01-09
      • 2012-03-15
      相关资源
      最近更新 更多