MobaXTermを使用して、SSHを介してWindows PCからLinux PCに接続します。
SSHセッション内には、いくつかのウィンドウとウィンドウを持つtmuxセッションがあります。
sshセッションは、数時間アクティビティがないと接続が切断されることがよくあります(MobaXTermで同様の接続を維持しようとしましたが、成功しませんでした)。
最初の問題:新しいSSHセッションを開始した後既存のtmuxセッションに再接続する、$DISPLAY
変数が「間違って」に設定されることがあります。つまり、X-Windows(Firefoxなど)を使用してGUIを起動すると、「ディスプレイを開けません」というエラーメッセージが表示されます。たとえば、
$ firefox &
[1] 23077
$ Unable to init server: Broadway display type not supported: localhost:11.0
Error: cannot open display: localhost:11.0
[1]+ Exit 1 firefox
$ echo $DISPLAY
localhost:11.0
通常私がオープンしたとき新しい端末と私は更新された/正しい値を取得します$DISPLAY
。その端末でX-Windowを使用してGUIを正常に起動できます。
$DISPLAY
質問:動的に「更新」する方法はありますか?既存の端末(つまり、SSH接続が切断されるまでアクティブになる端末)?つまり、インポートされた/検出された新しい値に対してのみ新しい端末を起動したくありません$DISPLAY
。
私はそれが何を意味するのか実際には理解していません$DISPLAY
。したがって、誰かがそれが何を意味し、説明された文脈で何をしているのかを説明できれば幸いです。
ベストアンサー1
tmuxが接続されると、デフォルトではDISPLAY
セッション環境で更新されますが、新しいウィンドウにのみ適用できます。既存のウィンドウに適用するには、次のことができる必要があります。
eval "$(tmux showenv -s DISPLAY)"