システムサービスでFBIを使用する方法

システムサービスでFBIを使用する方法

Xserver(Raspbian Buster)がないシステムでテレビに画像を表示しようとしています。 FBI がシステムサービスを介して動作することはできませんが、SSH 端末を介して動作します。

以下はsshで動作します。

sudo fbi -T 1 /path/to/image.jpg

しかし、システムサービス(wallpaper.service)では機能しません...

[Unit]
Description=display image     

[Service]
Type=simple
ExecStart=/usr/bin/fbi -T 1 /path/to/image.jpg

...実行しようとすると...

sudo systemctl daemon-reload
sudo systemctl start wallpaper.service

追加してみましたが…

StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty1

サービスファイルに運がありません。

編集する:

出力は以下から来ます。sudo systemctl status wallpaper.service

● wallpaper.service - random wallpaper change script
   Loaded: loaded (/etc/systemd/system/wallpaper.service; static; vendor preset: enabled)
   Active: inactive (dead) since Wed 2019-08-07 01:34:34 EDT; 12s ago
  Process: 888 ExecStart=/usr/bin/fbi -T 1 -a /home/deanresin/temp/fire.dragon.jpg (code=exited, status=0/SUCCESS)
 Main PID: 888 (code=exited, status=0/SUCCESS)

Aug 07 01:34:34 kl3mmput3r systemd[1]: Started random wallpaper change script.
Aug 07 01:34:34 kl3mmput3r fbi[888]: using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
Aug 07 01:34:34 kl3mmput3r systemd[1]: wallpaper.service: Succeeded.

出力は以下から来ます。journalctl -u wallpaper.service

Aug 07 01:34:34 kl3mmput3r systemd[1]: Started random wallpaper change script.
Aug 07 01:34:34 kl3mmput3r fbi[888]: using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
Aug 07 01:34:34 kl3mmput3r systemd[1]: wallpaper.service: Succeeded.

編集:FBIをコンソールで実行する必要があることを読みました。これはプログラムの制限です。 Systemdは迷惑です...そこでは何も機能しません。

答え1

-d /dev/fb0実際のフレームバッファデバイスを指すオプションはありません。ところで今職業を選択しようとするのに-T 1何をしても失敗しています。fbi「提供されていない場合は、仮想端末を使用してください」という/dev/console質問に対する別の答えがあります。 (-Tsystemdで作業した場合は、この内容を編集したはずです)

次の作品(画像の表示に使用されます)は、次のsystemdサービスとして提供されます/etc/systemd/system/splashscreen.service

[Unit]
Description=Splash screen
DefaultDependencies=no
After=local-fs.target

[Service]
#ExecStart=/usr/bin/fbi --noverbose -d -T 1 /dev/fb0 -t 60 -a -l /path/to/some/images.lst
ExecStart=/usr/bin/fbi --noverbose -d /dev/fb0 -t 60 -a -l /path/to/some/images.lst
#ExecStart=/usr/bin/fbi --noverbose -d /dev/fb0 -a /path/to/some/image.png
StandardInput=tty
StandardOutput=tty
#TTYPath=/dev/tty1

[Install]
WantedBy=sysinit.target

この#行は私がatmをテストしていることです。 2行目と3行目の両方がExecStart画像を表示します。

q(基本起動)仮想コンソールを終了すると、キーストロークは機能しますが(シャットダウン - 有効psおよび確認)、フレームバッファ出力(画面が空白/黒)を失いますsystemctl。私の考えでは、いいえオンにすると、すべてが期待どおりに機能しますが、AutorunのOSはデフォルトのOSとして他の端末でデフォルトで開き、フレームバッファデバイスも使用するため、atmを確認できません。

関連情報