有没有办法通过 ssh 在远程机器上打开一个窗口?
我知道 ssh -X 重定向到我的本地远程窗口,但是有没有办法在远程机器上打开该窗口并在断开连接后保持活动状态(在本地登录用户中打开它)?
问题是我已将 amule.conf 文件更改为熟悉的文件(因为他找不到 .aMule/Incoming,您知道,我必须更改主目录路径)应该重新启动 amule(他已将其打开)在他的桌面上)。
我只知道如何终止应用程序,并在它在我的本地获取 X 之后(这将与我的连接关闭:不酷)或让守护进程(amuled)在后台但是,如果我启动守护进程,他将得到一个 '当他试图再次打开 amule 时,进程已经在运行'错误(如果他没有看到窗户,他会认为它已经关闭),我会再接到一个电话......
有没有办法打开它并让它在他的桌面上?
你的问题真的不是很清楚。你为什么不让你的朋友自己打开窗户?无论如何,是的,可以ssh
进入远程机器并打开显示在该远程机器当前运行的 X 服务器上的图形窗口。
您需要告诉您的朋友允许您访问。这可以通过允许每个人连接到他的 X 服务器来完成:
$ xhost +
access control disabled, clients can connect from any host
Run Code Online (Sandbox Code Playgroud)
或者特别允许您:
$ xhost + si:localuser:eddieferetro
localuser:eddieferetro being added to access control list
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,他都需要从他现有的 X 会话中运行这些命令。然后他可以通过运行相同的命令再次关闭它,但替换+
为-
:
$ xhost - si:localuser:eddieferetro
localuser:eddieferetro being removed from access control list
Run Code Online (Sandbox Code Playgroud)
或者再次阻止所有外部访问:
$ xhost -
access control enabled, only authorized clients can connect
Run Code Online (Sandbox Code Playgroud)一旦他这样做了,你就可以正常 ssh,导出DISPLAY
变量并运行将出现在他的 X 会话中的 GUI 命令(我eog
以为例):
eddie@local$ ssh eddie@remote
eddie@remote$ export DISPLAY=:0
eddie@remote$ eog
Run Code Online (Sandbox Code Playgroud)要在注销后保留此窗口,您可以使用以下命令运行它nohup
: eddie@remote$ nohup eog &
您现在可以毫无问题地注销。