
Amazon の Ubuntu 14.04 サーバー インスタンスでプログラムを実行しようとしていますが、GUI が必要です。Lunbuntu をインストールし、x2go を使用してデスクトップを表示できますが、インターネット接続に問題が発生するとすぐに、x2go の接続が切断され、デスクトップ環境がシャットダウンするようです (プログラムもシャットダウンします)。
デスクトップをインスタンス上で常に実行し、x2go を使用してアクセスして (接続時に作成されるのではなく)、接続が失われてもデスクトップが実行される方法はありますか? EC2 で実行する主なポイントは、不安定な接続に対して安定性を高めることです。
この問題について何時間もかけて大量の資料を読み、DISPLAY および xauth ファイルを設定するためのさまざまな解決策を試しましたが、うまくいかないようです。そもそもできるのでしょうか?
答え1
はい。2つのオプションがあります。
時々デスクトップにアクセスする必要がある場合は、次を使用します
vncserver
。sudo apt-get install tightvncserver
注: 他にも実装はありますが、これは問題なく動作します。インストールしたら、実行します。
vncserver :1
初めて実行すると、デスクトップにアクセスするためのパスワードが求められます。パスワードを選択してください。これで、任意の VNC クライアントを使用してアクセスできるようになります。注記: VNC プロトコルは暗号化されていません。何らかの暗号化 (SSH ポート転送、VPN など) でトンネルし、そのポート (この例ではポート 5901) をファイアウォールで遮断する必要があります。
GUI にアクセスする必要がなく、実行するだけでよい場合は、セッション
xvfb
内で使用できますscreen
。sudo apt-get install screen xvfb screen xvfb-run your_application
これにより、スクリーン セッションが開始され、xvfb が開始され、アプリケーションが起動します。は、何かを開始し、切断し、後で再接続できるようにするプログラムです。切断は、 - 、(つまり、コントロールと a を押したまま)
screen
によって行われます。ctrl
a
d
両方をリリースする、d を押します)、再接続は で行われますscreen -r
。xvfb-run
Xvfb
は、"X for Virtual Framebuffer" の略である を起動するスクリプトです。X11 プロトコルを話しますが、ほとんど何もしません。アプリケーションがその X サーバーに送信したものは、どの画面にも表示されません。ただし、これは X サーバーであることに変わりはありません。これを使用するには、いくつかの環境変数を設定し、Xauthority
魔法をかける必要があります。xvfb-run
が存在するので、手動で行う必要はありません。最後に、すべての設定が完了したら、xvfb-run
アプリケーションを起動し、Xvfb
グラフィックス用に に接続し、標準出力用にアプリケーションを起動した端末 (この場合は画面セッション) に接続します。アプリケーションが X サーバーから切断されると、Xvfb
(ひいては もxvfb-run
) は終了します。
変更ができないためXvfb
、必要なリソースが少なくなり、速度も速くなる可能性があります。ただし、GUI にアクセスする必要がある場合は、このオプションは使用できません。