ディスプレイマネージャーなしのGUIを使用したプログラムの起動


9

端末から直接、ディスプレイマネージャーなしでグラフィカルインターフェイスを使用してプログラムを起動する方法があると聞きました。これは本当ですか?そうであれば、どうすればそれを行うことができますか?


GUIと対話する必要がありますか?
ダニエルB

@DanielBええ、たぶん
ベンは

1
ディスプレイマネージャーがなくても実行できますが、実行中のXセッションが必要です。どのディストリビューションを使用していますか?Xサーバーがインストールされていますか?走れますxinitstartx
terdon 2015

@terdonええ、私は現在lmintを実行していますが、質問は一般的な知識のためのものです(ディストリビューションターゲットではありません)。
ベン

回答:


5

ディスプレイマネージャーがなくても実行できますが、実行中のXセッションが必要です。詳細はディストリビューションによって異なりますが、次のコマンドを実行すると、単一のターミナルで最小限のXセッションを取得できるはずです。

xinit

私はこれを何年も行っていませんが、前回行った場合、次のような結果になります。

ここに画像の説明を入力してください

そこに移動すると、GUIプログラムを通常どおり実行できます。できればバックグラウンドで(を使用して&)起動することで、唯一のターミナルへのアクセスが失われないようにします。


2
「通常どおり実行する」にはプロセスのバックグラウンドが含まれる可能性が高いxterm &ため、だけでなく、追加のターミナルを取得するために使用することをお勧めしますxterm。等
CVn 2015

6

GUIアプリをヘッドレスで実行するための基本と、vncそれに接続する方法()を次に示します。家族RHEL7Centos 7一緒に仕事をしています。そして、https: //github.com/xeor/dockerfiles/tree/master/crashplan/にあるCrashplanで使用する自分のDockerイメージを取り除きました(Dockerfileセットアップとinit/setup起動については、を参照してください)。

# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"

# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*

# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd

# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &

# Wait for the app to start, or else, the vnc server will die before starting
sleep 5

# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY

これで、server:5900に接続してアプリケーションを表示できるようになります。


3

はい。ディスプレイマネージャーと同じことを行ってください。グラフィカルログイン画面(この場合は不要)を除いて、ディスプレイマネージャーは次の2つのことを行います。

  1. まず、XorgなどのX11「ディスプレイサーバー」を起動します。
  2. 次に、何をどこに描画するかをXorgに指示する「クライアント」を開始します。

startxX11をコンソールログインから同じように起動するようなツールを使用できます。Xorgを起動し、~/.xinitrcファイルにリストされているクライアントが続きます。

例えば、.xinitrcファイルは持つことができstartkdeたりgnome-session、またはそれは、個々のコンポーネント(ウィンドウマネージャ、パネル/タスクバー、デスクトップを...)リストすることができ

(いくつかの違いがあることに注意xinitしてはstartx-いくつかのディストリビューションは、無地のxinitが無視することの構成のいくつかの重要な部分、すなわち持っているので、通常、あなたは、後者を使用する必要がありxserverrc、スクリプトを。)

ウェイランドでは、デスクトップとパネルは「コンポジター」の統合された部分であるため、追加のツールなしで、インターフェース全体が1つのステップで開始されます。たとえば、をweston使用してGNOMEを実行または起動できますgnome-session --session=gnome-wayland


1

ローカル Xディスプレイがあれば、ssh X転送を使用してXアプリケーションを起動できます(ssh -X、サーバー構成でも有効にする必要がある場合があります)。

アプリケーションは、ヘッドレスシステムで実行されている間、ローカルで起動して表示されます。適切なライブラリを使用するには、ヘッドレスシステムにXをインストールする必要があります。これは、最新のGNOMEアプリケーションでは機能しない可能性があります。

を使用$DISPLAYして、シェルがリモートのシェル(sshまたはコンソール)であっても、接続されたXディスプレイでアプリを起動できます。rootでXディスプレイにログインしている人がそうでない場合は、xauthセキュリティを無効にして、とにかく彼らのディスプレイにウィンドウをポップアップできます。これは、異なるモニターに2つの異なるXディスプレイサーバーがある場合にも機能します。

別のポスターはVNCについて言及しています。私もこの目的でNXを使用しましたが、私はそれを好みます。


回答は無関係ですが、便利です
ベン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.