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