我已经使用 debian 6.0 构建了一个自定义嵌入式系统。
使用 /etc/inittab 我已经在不同的 /dev/ttyX 终端上运行了几个(8)个进程,我可以使用 Alt+FX 组合键在它们之间切换。问题是使用此设置,我需要将键盘/显示器连接到设备并重新启动它,才能对其进行操作,这是非常不可取的。我知道 linux 通过串行端口支持终端,而且我在设备上有几个终端,但我需要将所有这些进程输出到一个串行端口终端中。我已经找到了用于终端多路复用的屏幕实用程序,但仍然不确定这是不是可行的方法,以及需要完成的实际设置。
任何关于这种情况的经验或最佳实践都将受到高度赞赏
答案1
如果您可以控制正在运行的应用程序,为什么不让它们记录到 syslog 并将 syslog 输出到串行终端?
话虽如此,使用 at 或 exec 命令等命令要求 screen 在单独的会话中启动所有应用程序是一个有趣的想法。但是,有两个问题:
screen 使用各种终端命令,因此它对你用于连接的终端仿真器有要求。一个笨拙的终端仿真器可能不行。
screen 比普通 shell 占用更多的带宽,主要是因为在屏幕之间切换会重新绘制整个屏幕。如果您的串行终端波特率为 9600,这可能会有所不同。
此外,值得注意的是,如果发生崩溃,如果您的所有进程都登录到同一个 tty,您的终端仿真器将显示内核崩溃或自发重启(如果在灾难发生时已连接)。但是,如果该屏幕不是可见的,您将看不到它,因为您无法切换到它。
另一方面,如果只是一个进程的问题,屏幕的回滚缓冲区可能会派上用场。