確立されたSSH接続でXを有効/無効にします。

確立されたSSH接続でXを有効/無効にします。

だから私は仕事からSSHを介してCentOSシステムから別のローカルCentOSシステムに接続します。私たちはX11と端末で動作するアプリケーションを使用します。一部の機能は端末でのみ使用でき、その他の機能は X11 でのみ使用できます。プログラムは使用可能なXモニターがあるかどうかを自動的に検出し、使用可能な場合はそれを使用します。改善を要求することなく、2つのバージョンのアプリをすばやく切り替えることができれば幸いです。-Xロゴやロゴのない多数の-Y壁紙アイコン/ショートカットがあります。-Xまたは、フラグなしで起動された実行中のSSHセッションでX11転送を有効/無効にする方法はありますか-Y

答え1

使用中-Xまたは実行中の場合は、リモート側でXトンネルを指すように設定されます-Y$DISPLAYこの設定をオフにすると、$DISPLAYXアプリケーションがXサーバーと通信するのを防ぎます。例えば

$ echo $DISPLAY 
localhost:10.0

$ xdpyinfo | head -2
name of display:    localhost:10.0
version number:    11.0

$ DISPLAY= xdpyinfo | head -2
xdpyinfo:  unable to open display "".

$ DISPLAY= xterm
xterm: Xt error: Can't open display: 
xterm: DISPLAY is not set

したがって、X Tunnelingを有効にした後は、設定を解除して「隠す」ことができるはずです$DISPLAY

SSHセッションで入力して~?実行できる変更のリストを取得できます。ポート転送を追加/削除できますが、実行や同様の操作が~C必要なため、Xトンネルを簡単に変更することはできません。xauthイベントの順序は、リモートポートを再度localhost:6000(またはローカルXサーバーがあるポート)に転送し、DISPLAYを設定してxauth権限を追加することです。簡単ではありません!

答え2

許可されたソリューションによってスクリプトがクラッシュした場合(これは私のPythonスクリプトで発生した場合)、DISPLAYbashコマンドを使用して変数を完全に削除できますunset。それは、

unset DISPLAY

https://stackoverflow.com/questions/19930715/how-to-undo-display-export-in-linux

答え3

X11なしでアプリケーションを実行する必要がある場合は、次のことを試してください。エクスポートDISPLAY = ''

X11の場合は、DISPLAYをそのままにします。

関連情報