0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Xpra] SSH 先の Linux サーバーで GUI をバックグラウンド実行する

Last updated at Posted at 2023-11-19

はじめに

リモートの Linux サーバーで GUI を起動して,ログアウトした後も実行させ続け,好きなときにウィンドウを表示させたい.

xrdp を使う方法だとなかなかうまくいかなかったので,Xpra を利用してサーバー上の仮想ディスプレイにあるウィンドウをローカルに転送する方法を用いた.

環境

  • リモート: Ubuntu 20.04.6 LTS
  • ローカル: Ubuntu 22.04.2 LTS (WSL2)

準備

以下のサイトが参考になった.

remote bash
$ sudo apt install -y xpra python-cryptography
local bash
$ sudo apt install -y xpra
$ sudo pip install cryptography

リモートの Xwrapper.config 内の allowed_usersconsole から anybody に変更.

/etc/X11/Xwrapper.config
allowed_users=anybody

起動

リモート

このサイトの方法で,リモートで GUI アプリケーションを起動する.

remote bash
$ xpra start :1111

# 1111 番ディスプレイで screen を起動
$ DISPLAY=:1111 screen

開いた screen 内で,firefox などの GUI アプリケーションを起動する.

screen
$ firefox

ここではまだウィンドウは表示されない.起動したら,Ctrl-A + D で screen を離れる.
これで,logout しても GUI が 1111 番ディスプレイで起動している状態になった.

ローカル

次に,ローカル側で Xpra を起動する.

local bash
$ xpra --ssh=ssh attach ssh:REMOTE:1111

REMOTE は,.ssh/config に登録されている接続先.今回は踏み台サーバーでポート転送を利用して接続していたが,問題なく接続できた..ssh/config の内容はこんな感じ.

~/.ssh/config
Host FUMIDAI
  HostName [ADDRESS]
  User [USERNAME]
  LocalForward [PORT] localhost:[PORT]

Host REMOTE
  HostName localhost
  User [USERNAME]
  Port [PORT]
  ProxyCommand ssh -W %h:%p FUMIDAI

うまくいけば,これでウィンドウが表示される.終了するには,ターミナルで Ctrl-C する.

エラー

TypeError: Couldn't find foreign struct converter for 'cairo.Context' のエラーが表示される場合は,先に python3-gi-cairo を入れる.

local bash
$ sudo apt install python3-gi-cairo

他にもエラーや警告がわんさか表示されていたが,今回は問題なく接続できた.

ちなみに,リモートサーバー上で Xpra を起動して,表示されたウィンドウを X11Forwarding を用いて転送する方法では,一瞬だけウィンドウが表示されるがすぐに消え,うまく接続できなかった.
原因はよくわかっていない.

おわりに

Xpra という方法に辿り着くまでに数日かかり,原因不明のエラーの嵐だったが,とりあえずなんとか実現できたのでよかった.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?