ヘッドレスサーバーでリモートでgnome-terminalを起動するには? (X11転送では起動できません)

ヘッドレスサーバーでリモートでgnome-terminalを起動するには? (X11転送では起動できません)

SSHを使用してアクセスするヘッドレス仮想マシン(Ubuntu Server 17.04を実行)があります。私はX11配信の基本をよく知っており、xtermと友達をうまく伝えることができます。 XFCE端末もOKを渡します。

Gnome Terminalを使いたいのですが起動しないようです。代わりにしばらく停止し、最終的にエラーが発生します。

Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached

興味深いことに、私のVMでローカルデスクトップセッションを実行すると(startxを介して開始)、gnome-terminalはX11を介してリモートで動作します。

一種のGnomeサービスを実行する必要があるようですが、それが何であるか、デスクトップセッション全体のコンテキストの外でサービスを開始する方法がわかりません。仮想マシンは基本的にヘッドレスなので、通常は起動しません。

私の仮想マシンでローカルでGUIデスクトップセッションを開始せずにGnome Terminalがリモートで動作するようにするにはどうすればよいか知っていますか?

ベストアンサー1

これはうまくいきません。gnome-terminal(他のようにgnome-thing)はdbusに接続しようとしますが、応答を受け取らずに長い時間後に失敗します。

最も簡単な解決策は、セッションのdbusインスタンスを起動することです。

export $(dbus-launch)
gnome-terminal

始めるとウェイランド会議時間:離れて初めて実行したので、export $(dbus-launch)もう一度実行する必要があります。それ以外の場合は、gnome-terminal渡されたモニターのX11インスタンスの代わりにWaylandインスタンスがリモートモニターから起動されます。gnome-terminal

この場合の別の回避策は、X11を明示的に実行することです。 X11gnome-terminal-serverは、X11を使用する最後のウィンドウが閉じた後に終了します。例:

#! /bin/bash
ID=foo.bar$RANDOM
GDK_BACKEND=x11 /usr/libexec/gnome-terminal-server --app-id "$ID" &
sleep .4        # yuck
gnome-terminal --app-id "$ID"
wait

おすすめ記事