スタンドアロンで実行するときに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 +
(ここにユーザー名を入力してください)
特定のユーザーにアクセスできます。