SSHは初めてです。リモートコンピューターに接続できます。リモートコンピューターでアプリケーションを起動し、画面にそのGUIを表示することもできます。
しかし、画面に出力を生成せずにアプリケーションを起動する方法はわかりません。
アプリケーション(たとえばrhythmbox)を起動し、ssh接続を閉じて、画面に出力を送信せずに、アプリケーションを実行したままにします。
Webの閲覧いくつかのアドバイスを見つけましたが、何の助けにもなりませんでした。
ssh -X name@domain
Nohup rhythmbox &
logout
Rhythmboxをリモートコンピューターの画面に表示したいですか? GUIアプリケーションが表示される画面は、DISPLAY
環境変数によって示されます。 ssh -X
を実行すると、DISPLAY
は、表示要求をSSH接続経由で転送する必要があることを示す値に設定されます。アプリケーションをリモートコンピューターの画面に表示するには、DISPLAY
を値:0
に設定します。
ssh [email protected] 'DISPLAY=:0 rhythmbox &'
もう1つのハードルがあります。アプリケーションがXディスプレイに接続するとき、Cookieと呼ばれる一種のパスワードを提供する必要があります。 Cookieは、Xサーバーが起動するたびに生成されます。 Ubuntuは、ランダムに生成された名前のファイルにCookieを保存します。 Cookieを見つける最も簡単な方法は、Xサーバーの起動時に既知のファイル名で保存することです。 Ubuntuでは、次のコードを~/.profile
に追加します。
case $DISPLAY:$XAUTHORITY in
:*:?*)
# DISPLAY is set and points to a local display, and XAUTHORITY is
# set, so merge the contents of `$XAUTHORITY` into ~/.Xauthority.
XAUTHORITY=~/.Xauthority xauth merge "$XAUTHORITY";;
esac
詳細については、 ssh DISPLAY変数 を参照してください。
または、Rhythmboxウィンドウを表示したくないということですか?その場合、仮想Xサーバーに接続するようにします xvfb 。仮想Xサーバーを起動し、Rhythmboxに接続するように指示します。
ssh [email protected] 'Xvfb :1 -screen 0 800x600x8 & sleep 1; DISPLAY=:1 rhythmbox &'