デスクトップ環境がインストールされて実行されているDebian 10システムを使用しています。端末を開いて、コマンドラインからgeditなどのGUIアプリケーションを実行しようとすると、次のメッセージが表示されて開くことができません。
# gedit
Unable to init server: Could not connect: Connection refused
(gedit:3575): Gtk-WARNING **: 12:26:48.311: cannot open display:
これは、rootだけでなく、どのユーザーでも起こります。
私は役に立たないという提案に基づいて以下を実行してみました:
export DISPLAY=:0
export DISPLAY=:1
export DISPLAY=:2
export DISPLAY=:3
export DISPLAY=:4
export DISPLAY=:5
export DISPLAY=:6
xhost +
誰かがここで何が間違っているのか考えていますか?
編集:
export DISPLAY=:0
通常のユーザーとして、通常のユーザーはコマンドラインからGUIプログラムを実行できますが、rootで同じことを試みると、次のメッセージで失敗します。
No protocol specified
Unable to init server: Could not connect: Connection refused
No protocol specified
Unable to init server: Could not connect: Connection refused
No protocol specified
Unable to init server: Could not connect: Connection refused
(gedit:3609): Gtk-WARNING **: 12:33:16.307: cannot open display: :0
ディスプレイはユーザーのものです。そのため、別のユーザーがそれを描画できるようにしたい場合は(プリンターと考えてください)、権限を付与する必要があります。
これを行うには多くの方法がありますが、おそらく最も簡単な方法は、グラフィックターミナルを開いて実行することです。
$ xhost +
これにより、他のユーザーからサーバーへの接続が可能になります。
次に、他のユーザーから次のコマンドを実行できます。
$ export DISPLAY=:0
:1などの別の表示である可能性があります...
これらの2つのステップを回避したい場合は、-Xフラグ(表示を転送する)を使用して、他のユーザーにssh
できます。
$ ssh -X -l other_user localhost