分页: 1 / 1
请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-07 21:10
由 香肠超人
小弟两台机器,A和B。我写了个脚本放在B机上,最后一句是启动一个程序的,不过这个程序好像是需要X环境的(不知道这个表述是否正确)。
在A机SSH登录B机执行脚本的话,A机上会提示:
DISPLAY is not set, unable to open XXX...
但是在B机直接执行这个脚本的话,倒是一切如常。
请问这个东西要如何解决啊?我的目标是想在A机远程执行完这个脚本后,在B上面会自动运行起程序来,请问这个能做到吗?
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-08 0:42
由 achen.han
设置环境变量DISPLAY运行,
DISPLAY = A机ip:0 程序名 程序在B机运行,输入显示在A机,也就是X环境在A机。
DISPLAY = B机ip:0 程序名 按道理程序和X环境都在B机,没试过,不知道是否可行。
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 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。
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-08 12:29
由 eexpress
ssh过去的时候,你输入命令前,export下当地的DISPLAY.
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 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机器上看不到终端窗口。
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-08 13:55
由 eexpress
lol 4小时。休息4小时,不也搞定了嘛。
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-09 17:08
由 lilydjwg
直接 ssh -X xxx 不就行了吗
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-09 18:34
由 photor
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-10 17:26
由 香肠超人
lilydjwg 写了:直接 ssh -X xxx 不就行了吗
直接ssh -X xxx不行,我最开始就是这样来做的。
Re: 请问如何通过SSH在远程启动需要X环境的程序啊?
发表于 : 2011-04-10 17:37
由 lilydjwg
香肠超人 写了:
直接ssh -X xxx不行,我最开始就是这样来做的。
sshd 的配置中没开 X11 转发?