独立して実行すると、X11Display変数を設定する必要があるスクリプトがあります。バックグラウンドデーモンジョブを使用してこのスクリプトを呼び出すと、次のエラーが発生します。Xlib: connection to "localhost.localdomain:0.0" refused by server
Xlib: No protocol specified
これで起こりうる間違いを特定するのを手伝ってください。
スクリプト内にある以下のコマンド。export DISPLAY=
hostname:0.0
Java ScreenCapture
同じスクリプトがサービスとして実行されているバックグラウンドデーモンによって呼び出された場合、エラーが発生します。
ここで推測しているだけですが、バックグラウンドデーモンが、ディスプレイにアクセスする権限を持たない別のユーザーとして実行されている可能性があります。
xhost
を使用して、ユーザーアクセスを制御できます。
Xhostプログラムは、Xサーバーへの接続を許可するリストにホスト名またはユーザー名を追加および削除するために使用されます。
次のコマンドを実行して、これが問題であるかどうかをテストできます。
xhost +
ターミナルウィンドウから。これにより、すべてのユーザーがディスプレイにアクセスできるようになります。
xhost +
(ここにユーザー名を挿入)
特定のユーザーにアクセスを許可します。