gpt4 book ai didi

bash - 将 xterm 重定向到 headless 机器的后台

转载 作者:行者123 更新时间:2023-12-03 15:53:45 25 4
gpt4 key购买 nike

我有一个启动 xterm 并转储 uart 日志的应用程序。我能够看到它启动并在 GUI 中转储日志。但是,使用远程 session ,我希望 xterm 输出在某处作为后台进程运行,以便我可以在单个终端内来回切换。
使用图形用户界面
enter image description here
使用远程终端 (SSH)

$ xterm
xterm: Xt error: Can't open display: :0
我试图做类似的事情,但没有工作 -
alias xterm="/bin/bash -c"
我不想拥有 X forwarding并在我的本地机器上启动一个窗口。

最佳答案

如果您只需要日志,您很可能不需要 X 服务器或 xterm .
您可以简单地运行目标命令本身。从您的屏幕截图看起来该命令可能是 telnet 127.0.0.1 <port_number> .您可以从应用程序启动的脚本中找到它,或者使用 ps -ef当它运行时。如果是UART,也可以使用minicomsocat无需任何额外程序即可直接连接到串口。这样,您甚至不需要 telnet .
您可以将此命令与 screen 结合使用。或 tmux以便它在后台运行,您可以从任何终端或控制台切换到它。只需运行 screen不带参数,然后在虚拟屏幕上运行命令。与 CTRL-a d 分离,并且您的命令将继续在后台运行,以便您随时使用 screen -r 重新连接到它。 .
此外,screen也可以直接连接到串口,这样你就可以以一个的价格得到两个。xterm 的事情是它不会在除图形缓冲区之外的任何地方写入日志,即使在那里它也只会作为不适合任何处理的闪烁像素。如果你坚持这样做,你有几个选择:

  • 更改应用程序运行的脚本(根据您的情况可能无法)
  • 替换 /usr/bin/xterm使用只运行 bash 的虚拟脚本而不是 xterm , 并将输出重定向到一个文件(丑陋,但您可以通过更改 PATH 并将其放在其他位置来避免破坏其他应用程序)。在您的脚本中,您可以使用 bash的重定向功能,例如 > , 或管道输出到 tee .
  • 在后台启动一个VNC服务器并设置DISPLAY环境变量,当你运行你的应用程序时,虚拟屏幕的数量。在这种情况下,应用程序中的任何窗口都将在 VNC 虚拟屏幕上打开,您可以随意连接到它。
  • 使用xvfb作为虚拟 X 服务器并将其与 xterm 日志记录等结合使用。
  • 关于bash - 将 xterm 重定向到 headless 机器的后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66725755/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com