请问如何通过SSH在远程启动需要X环境的程序啊?

sh/bash/dash/ksh/zsh等Shell脚本
回复
香肠超人
帖子: 10
注册时间: 2010-07-30 16:56

请问如何通过SSH在远程启动需要X环境的程序啊?

#1

帖子 香肠超人 » 2011-04-07 21:10

小弟两台机器,A和B。我写了个脚本放在B机上,最后一句是启动一个程序的,不过这个程序好像是需要X环境的(不知道这个表述是否正确)。
在A机SSH登录B机执行脚本的话,A机上会提示:
DISPLAY is not set, unable to open XXX...
但是在B机直接执行这个脚本的话,倒是一切如常。

请问这个东西要如何解决啊?我的目标是想在A机远程执行完这个脚本后,在B上面会自动运行起程序来,请问这个能做到吗?
achen.han
帖子: 442
注册时间: 2010-09-08 23:33

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#2

帖子 achen.han » 2011-04-08 0:42

设置环境变量DISPLAY运行,

DISPLAY = A机ip:0 程序名 程序在B机运行,输入显示在A机,也就是X环境在A机。

DISPLAY = B机ip:0 程序名 按道理程序和X环境都在B机,没试过,不知道是否可行。
香肠超人
帖子: 10
注册时间: 2010-07-30 16:56

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#3

帖子 香肠超人 » 2011-04-08 11:18

无论是export DISPLAY=A:0,还是export DISPLAY=B:0,都从终端返回这样的信息:
xprop: unable to open display 'A:0'
xprop: unable to open display 'A:0'

(xxx): Gtk-WARNING **: cannot open display : A:0

上面的A是DISPLAY=A:0,当DISPLAY=B:0是,错误信息中的A变成B。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#4

帖子 eexpress » 2011-04-08 12:29

ssh过去的时候,你输入命令前,export下当地的DISPLAY.
● 鸣学
香肠超人
帖子: 10
注册时间: 2010-07-30 16:56

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#5

帖子 香肠超人 » 2011-04-08 12:52

经过接近4个小时,无数次试验,终于把这个问题解决了。
POST下解决办法,以备以后有需要的朋友参考:
SSH登录之后,执行如下命令即可:
export "DISPLAY=:0" && gnome-terminal -e "./test.sh"
或者
export "DISPLAY=:0" && "./test.sh"
这里的test.sh是我放在B机上的home目录下脚本,可根据需要改成自己的。
上述两条命令,第一条是在B机上创建新终端并且把test.sh作为参数传给新建的终端并执行,即可在B机器上看到终端窗口。
第二条是直接在B机上执行脚本,终端里的提示会传回A机上显示,即在B机器上看不到终端窗口。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#6

帖子 eexpress » 2011-04-08 13:55

lol 4小时。休息4小时,不也搞定了嘛。
● 鸣学
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#7

帖子 lilydjwg » 2011-04-09 17:08

直接 ssh -X xxx 不就行了吗
香肠超人
帖子: 10
注册时间: 2010-07-30 16:56

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#9

帖子 香肠超人 » 2011-04-10 17:26

lilydjwg 写了:直接 ssh -X xxx 不就行了吗
直接ssh -X xxx不行,我最开始就是这样来做的。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 请问如何通过SSH在远程启动需要X环境的程序啊?

#10

帖子 lilydjwg » 2011-04-10 17:37

香肠超人 写了: 直接ssh -X xxx不行,我最开始就是这样来做的。
sshd 的配置中没开 X11 转发?
回复