Ssh
如何在遠端 centos 7 機器上執行 gnome-terminal?
我的本地機器是 linux mint,遠端機器是 centos 7。我嘗試使用 x-forwarding 在遠端機器上打開 gnome-terminal,但它不工作。
當我以互動模式連接到主機時
$ 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有問題。
請幫忙。
謝謝你。
原因是它把
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'