我有一个无人值守的系统,它很可能尝试在其帧缓冲区控制台上显示一些有用的错误消息,因为有一个应用程序在交互式终端中运行。但没有连接屏幕,我只能通过 ssh 进行远程访问。
是否可以从远程登录中窥视屏幕终端输出?
答案1
是的,实际上有一个工具叫窥视这样做。
# peekvc 1
Linux 虚拟控制台内容可以通过/dev/vcs#
纯文本和/dev/vcsa#
格式化属性进行访问,尽管这两种设备都没有提供易于“cat”的格式,所以您仍然需要 peekvc 来解码它。
请注意仅有的适用于虚拟控制台。实际tty*
设备类似于管道,不会保留其“内容”,甚至不理解这些内容的含义。单独的设备vcs*
是 Linux 内置“终端仿真器”特有的功能。
在查看输出后,你可能想要提供一些输入——写工具将允许您执行此操作。这做适用于任何 tty 类型,不限于虚拟控制台。
# writevt /dev/tty1 $'whoami\n'
(这不能通过简单地写入tty*
设备来完成,因为你会写入管道的错误一端——你会将程序的输出发送到终端,而输入是程序读来自 tty 设备。因此可以说 writevt 工具“取消读取”数据,而不是写入数据。)
将来,考虑在 tmux 或 GNU Screen 或 Abduco 会话内运行该应用程序,而不是直接运行。