rc.localのFeh自動起動エラー:Xディスプレイを開くことができません。実行中ですか?

rc.localのFeh自動起動エラー:Xディスプレイを開くことができません。実行中ですか?

rc.localファイルでdotnetアプリケーションを実行しようとしています。仕事でビデオの再生を開始するか、fehプレーヤーを使用して画像のスライドショーを表示する場所です。 bashでスクリプトを手動で実行すると正常に動作します。

fehプレーヤーを実行しようとすると、次の結果が表示されます。

feh ERROR: Can't open X display. It *is* running, yeah?

rc.localから

$(cd /home/pi/DigitalSignage/ ; sh startUpDigitalSignage.sh) &

startUpDigitalSignage.sh

#!/bin/bash
echo "Start Digital Signange"
sudo DISPLAY=:0 dotnet DigitalSignage.dll

アプリケーションを起動する前にDISPLAY = : 0を追加しようとしましたが、役に立ちませんでした。

dotnetアプリケーションでプロセス呼び出しを使用していますが、呼び出し表示設定に追加する方法がわかりません。

 process = new Process();
 process.StartInfo.FileName = "feh";
 process.StartInfo.UseShellExecute = false;
 string geometry = screenType == ScreenOutputType.HDMI_1 ? "1920x1080" : "1920x1080+1920";
 string textInfo = string.IsNullOrEmpty(outputText) ? "" : "--font  yudit/48 --info \"echo " + outputText + "\"";
 process.StartInfo.Arguments = " -Y -z "+ textInfo + " --geometry=" + geometry + " -x --zoom fill \"" + path + "\" ";
 process.StartInfo.RedirectStandardInput = true;
 process.StartInfo.RedirectStandardOutput = true;
 process.Start();

ベストアンサー1

$実行しない場合は、コマンドの先頭から削除してください。出力コマンドから:

$(cd /home/pi/DigitalSignage/ ; sh startUpDigitalSignage.sh) &

代わりにスクリプトを呼び出し、環境を正しく設定してください(DISPLAY例:

存在する/etc/rc.local

/home/pi/DigitalSignage/startUpDigitalSignage

あなたのスクリプトからstartUpDigitalSignage

#!/bin/sh
# Start the digital signage
#
echo 'Start Digital Signage'

cd /home/pi/DigitalSignage &&
    DISPLAY=:0 dotnet DigitalSignage.dll &

実行可能であることを確認してください。

chmod a+rx startUpDigitalSignage

おすすめ記事