GNU/Linux >> Linux の 問題 >  >> Linux

Ssh –リモートXディスプレイでウィンドウを開く(「ディスプレイを開くことができない」理由)?

昔々、

DISPLAY=:0.0 totem /path/to/movie.avi

ラップトップからデスクトップにsshを実行すると、トーテムが movie.aviを再生します。 デスクトップ上。

これでエラーが発生します:

No protocol specified
Cannot open display:

両方のコンピューターで安定したときにDebiansqueezeを再インストールしましたが、構成が壊れたと思います。

私はこれをグーグルで検索しましたが、私が何をすべきかを一生理解することはできません。

(VLCには機能するHTTPインターフェースがありますが、sshほど便利ではありません。)

これをcronジョブから実行しようとすると、同じ問題が発生します。

承認された回答:

(Linuxから採用:セッションがssh + screenで開始された場合、wmctrlは表示を開くことができません)

表示と権限

Xプログラムは、Xディスプレイに接続するために2つの情報を必要とします。

  • ディスプレイのアドレスが必要です。通常は:0です。 ローカルにログインしているとき、または:10 :11 、など。リモートでログインしている場合など(ただし、アクティブなX接続の数によって数が変わる可能性があります)。ディスプレイのアドレスは通常、 DISPLAYに表示されます 環境変数。

  • 表示用のパスワードが必要です。 Xディスプレイのパスワードはマジッククッキーと呼ばれます 。マジッククッキーは直接指定されません。それらは常に「display:42」の形式のレコードのコレクションであるX典拠ファイルに保存されます。 クッキーを持っている123456 」。 X典拠ファイルは通常、 XAUTHORITYで示されます。 環境変数。 $ XAUTHORITYの場合 が設定されていない場合、プログラムは〜/ .Xauthorityを使用します 。

デスクトップに表示されているウィンドウを操作しようとしています。デスクトップマシンを使用しているのがあなただけの場合、表示名は:0である可能性が非常に高くなります。 。 DebiansqueezeまたはUbuntu10.04で設定されたgdmを使用すると、ランダムに生成された名前のファイル内にあるため、X典拠ファイルの場所を見つけるのは困難です。 (以前のバージョンのgdmはデフォルト設定、つまり〜/ .Xauthority に保存されたCookieを使用していたため、以前は問題はありませんでした。 。)

変数の値を取得する

DISPLAYの値を取得するいくつかの方法を次に示します。 およびXAUTHORITY

  • デスクトップから、おそらくログインスクリプトで自動的に(〜/ .profile から)スクリーンセッションを体系的に開始できます。;ただし、Xでログインする場合にのみ実行してください: DISPLAYかどうかをテストします で始まる値に設定されます (これは、発生する可能性のあるすべてのケースをカバーする必要があります))。 〜/ .profile内 :

    case $DISPLAY in
      :*) screen -S local -d -m;;
    esac
    

    次に、sshセッションで:

    screen -d -r local
    
  • DISPLAYの値を保存することもできます およびXAUTHORITY ファイルに入れて、値を呼び出します。 〜/ .profile内 :

    case $DISPLAY in
      :*) export | grep -E '(^| )(DISPLAY|XAUTHORITY)=' >~/.local-display-setup.sh;;
    esac
    

    sshセッションの場合:

    . ~/.local-display-setup.sh
    screen
    
  • DISPLAYの値を検出できます およびXAUTHORITY 実行中のプロセスから。これは自動化するのが難しいです。作業するディスプレイに接続されているプロセスのPIDを把握してから、 / proc / $ pid / environから環境変数を取得する必要があります。 ( eval export $(

Linux
  1. xhost+ :リモート サーバーで GUI を起動する際の「ディスプレイを開けません」エラーを修正する方法

  2. リモート ssh コマンドで変数を渡す

  3. SSH を使用してデスクトップでアプリケーションを開く

  1. Ssh – FirefoxがSshよりも遅いのはなぜですか?

  2. SSH ログインが遅いのはなぜですか?

  3. リバース (リモート) SSH トンネルを介した SSH 接続

  1. Ctrl-c Sshセッションでの処理?

  2. Linuxディスプレイをエクスポートできないのはなぜですか?

  3. リモートSSHアクセスを許可しますか?