screen または tmux (または代替手段) で GUI を実行する

screen または tmux (または代替手段) で GUI を実行する

常に実行する必要がある GUI のみのアプリケーションがあります。問題は、このアプリケーションのためだけに完全なデスクトップをインストールできないことです (私の OS は Debian と Ubuntu CLI です)。

そこで、このアプリケーションを screen や tmux などのサーバー上で実行する方法があるかどうか疑問に思いました。そうすれば、X を転送して作業を続行できます。

答え1

これには 2 つの側面があります。1 つ目は、終了しないプロセスが gui プロセスを所有することです。これを実現する方法はいくつもありますが、現在作業している方法であれば、tmux がプロセスを所有することで「十分」です。

2つ目は、GUI出力をどこかに置くことです。GUI出力をプロセスが動作しているサーバーの画面に表示し、リモートからもアクセスできるようにするには、x11vncは良い選択肢であり、ほとんどのディストリビューションに存在します。必要なのは X11 セッションだけなので、完全なデスクトップではなく、GUI を表示するのに十分な X と x11vnc だけです。

これにより、実行されている X セッションが VNC セッションとして公開され、リモートからアクセスできるようになります。vnc ではセキュリティがあまり提供されないため、理想的には ssh 経由でこれを実行します。

答え2

Xpra を調べてください。X アプリケーションをリモートで実行し、接続を中断することができます。これは「X 用の tmux」に非常に似ています。

http://xpra.org/

答え3

X Windows を使用する GUI プログラムは、サーバー (グラフィック ヘッド) に接続する必要があります。/ から切断してもscreen(tmuxセッションは維持されます)、サーバーへの接続は切断されたままになる場合があります (たとえば、ローカル コンピューターをシャットダウン/スリープ/休止状態にした場合)。サーバーへの接続が維持されている限り$DISPLAY、アプリは続行されます。SSH と X 転送を使用している場合は、SSH セッションが終了すると接続も終了します。

はい、CLI からアプリケーションを無期限に実行できますが、サーバーとクライアント間の接続が維持されるかどうかに依存します。

関連情報