如何在遠端centos 7機器上運行gnome終端?

如何在遠端centos 7機器上運行gnome終端?

我的本機是 linux mint,遠端機器是 centos 7。

當我以互動模式連接到主機時

$ ssh -Y centos-host

然後在開啟的會話中我可以執行 gnome-terminal 和 x-forwarding 工作

$ gnome-terminal 
$ netstat -nltp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -  

然而當我嘗試跑步時

$ ssh -Y centos-host gnome-terminal

帶有 gnome 終端的視窗打開,但沒有為 X 建立隧道。

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

我有另一台 linux mint 遠端機器,但沒有遇到這樣的問題。所以,我認為centos 7有問題。

請幫忙。
謝謝。

答案1

原因是它gnome-terminal自己分叉到後台。如果您在互動式ssh會話中運行它,您會注意到即使終端仍然打開,您也會收到一個新的命令提示字元。在非互動情況下,一旦發生這種情況,ssh就會認為該命令已經終止並關閉會話,包括關閉伺服器上偵聽的 X11 套接字。由於仍然存在活動的 X11 連接,ssh不會立即退出,這就是為什麼它看起來就像會話仍然處於活動狀態一樣,但是無法開啟新的 X11 連線。

您過去可以透過使用來做到這一點gnome-terminal --disable-factory,但不幸的是,它gnome-terminal在某些時候已被刪除。您現在有兩個選擇:

  • 例如,使用另一個不會進入背景的終端程式xterm
  • 例如,啟動後立即gnome-terminal在同一ssh會話中執行一個不會終止的命令ssh -Y server 'gnome-terminal; echo Press enter to exit; read'

答案2

配置:

  • CentOS Linux 版本 7.6.1810(核心)
  • /etc/ssh/sshd_config包含:
X11Forwarding yes

以下命令對我有用:

ssh -Y HOST bash -l -c gnome-terminal --display=${DISPLAY} < /dev/null > /dev/null  2>&1 &

通知gnome-terminal --disable-factory--disable-factory不再受支援。

相關內容