Raspberry Pi 运行远程 SSH 命令来显示 GUI 图像

Raspberry Pi 运行远程 SSH 命令来显示 GUI 图像

我有一台装有 shell 脚本的 ubuntu 机器。当我从 Windows 机器通过 SSH 进入这台机器时,我可以运行“导出显示=:0“然后运行脚本”/home/enter.sh“并且图像在 Ubuntu 机器上正确显示。

但是,当我尝试从树莓派运行远程 SSH 命令时,“远程控制[电子邮件保护]/home/enter.sh“,导出显示后,我仍然收到错误”display-im6.q16:无法打开 X 服务器“”@error/display.c/DisplayImageCommand/432

答案1

当你在 Pi 上运行此程序时:

# shell on Pi
export DISPLAY=:0
ssh [email protected] /home/enter.sh

您正在export …Pi 上运行。然后ssh从 shell 继承变量,但它不会将其环境推送到服务器。它可以DISPLAY在服务器上设置,但变量不会具有您在客户端上设置的值(请参阅man 1 ssh,环境部分)。

但是当你运行这个:

# connected to the server interactively
# interactive shell on the server
export DISPLAY=:0
/home/enter.sh

export …你在服务器上运行。然后enter.sh从交互式 shell 继承导出的变量。


ssh可以运行多个命令。像这样:

# shell on Pi
ssh [email protected] 'export DISPLAY=:0; /home/enter.sh; another_command; yet_another'

此方法export …在服务器上运行。变量将对enter.shanother_command和起作用yet_another

或者你可以只设置变量enter.sh。如果脚本是本地的,它将是这样的:

DISPLAY=:0 /home/enter.sh

(注意没有分号)。ssh它将是:

ssh [email protected] 'DISPLAY=:0 /home/enter.sh'

在这种情况下,如果您选择添加更多命令,则DISPLAY=:0不会影响它们。

相关内容