시스템 서비스에서 FBI를 사용하는 방법

시스템 서비스에서 FBI를 사용하는 방법

Xserver(Raspbian Buster)가 없는 시스템에서 TV에 이미지를 표시하려고 합니다. 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을 테스트하고 있는 것입니다. 두 번째와 세 번째 ExecStart행 모두 이미지를 표시합니다.

q(기본 시작) 가상 콘솔을 종료하면 키 입력은 계속 작동하지만( 종료 - 사용 ps및 확인 ) 프레임 버퍼 출력(화면이 공백/검은색)을 잃게 됩니다 systemctl. 내 생각엔 만약 당신이아니요켜면 모든 것이 예상대로 작동하지만 Autorun의 OS가 기본 OS로 다른 터미널에서 기본적으로 열리고 프레임 버퍼 장치도 사용하기 때문에 atm을 확인할 수 없습니다.

관련 정보