Xlib:プロトコルが指定されていません。

Xlib:プロトコルが指定されていません。

重複の可能性:
リモートXモニターでウィンドウを開く(「モニターを開けません」理由)?

スタンドアロンで実行するときにX11表示変数を設定する必要があるスクリプトがあります。バックグラウンドデーモンジョブを使用してこのスクリプトを呼び出すと、次のエラーが発生します。
Xlib: connection to "localhost.localdomain:0.0" refused by server
Xlib: No protocol specified
この点で、私がどこで間違っているのかを調べるのを手伝ってください。
以下のコマンドはスクリプト内にあります。
export DISPLAY=ホスト名:0.0
java ScreenCapture
サービスとして実行されているバックグラウンドデーモンで同じスクリプトを呼び出すと、エラーが発生します。

答え1

ここでは推測だけですが、ディスプレイにアクセスできない他のユーザーとしてバックグラウンドデーモンが実行されている可能性があります。

xhost以下を使用してユーザーアクセスを制御できます。

xhostプログラムは、Xサーバーに許可されている接続のリストからホスト名またはユーザー名を追加および削除するために使用されます。

次のコマンドを実行して、これが問題であるかどうかをテストできます。

xhost +

ターミナルウィンドウでは、すべてのユーザーがディスプレイにアクセスできます。

xhost +(ここにユーザー名を入力してください)

特定のユーザーにアクセスできます。

関連情報