Fedora 20 uruchamia skrypt podczas uruchamiania

0

Próbuję uruchomić pokaz slajdów automatycznie podczas uruchamiania w Fedorze 20. Zacząłem od prostego skryptu. eog to „oko na gnome”, czyli przeglądarka pokazów slajdów, a moje zdjęcia znajdują się w katalogu / home / admin / Downloads. To działa doskonale.

#!/bin/bash
#
eog --slide-show /home/admin/Downloads

Następnie utworzyłem plik jednostki w / etc / systemd / system

[Unit]
Description=Starts the pics program

[Service]
ExecStart=/home/admin/pics

[Install]
WantedBy=graphical.target

Kiedy próbowałem uruchomić skrypt startowy, otrzymałem następujące

Loaded: loaded (/etc/systemd/system/pics.service; enabled)
Active: failed (Result:exit-code)...
Process: 4752 ExecStart=/home/admin/pics
Main PID: 4799 (code=exited, status=1/FAILURE)

...:Unable to init server: Could not connect: Connection refused
...:Cannot open display:
...:Run 'eog --help' to see a full...
...:Unit pics.service entered failed state.

Po przeprowadzeniu badań odkryłem, że muszę uwzględnić następujące elementy, ale bez względu na to, gdzie to umieściłem, wciąż otrzymuję różne błędy. Najwyraźniej ma to coś wspólnego z uruchomieniem programu jako innego użytkownika. Czy mogę uzyskać pomoc w naprawie mojego kodu?

 pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY 
user3456757
źródło

Odpowiedzi:

0

Posługiwać się Autostart aplikacji desktopowej zamiast.

Wewnątrz $XDG_CONFIG_HOME/autostart/ (domyślna: $HOME/.config/autostart ), Stwórz pics.desktop plik, który powinien zawierać:

[Desktop Entry]
Type=Application
Exec=/home/admin/pics
Hidden=false
X-GNOME-Autostart-enabled=true
Name[en_US]=pics
Name=pics
Comment[en_US]=Starts the pics program
Comment=Starts the pics program

Jeśli naprawdę chcesz używać jednostek systemowych, przynajmniej:

  • Zmień proces, aby używać identyfikatorów UID innych niż root. Aplikacje graficzne nie powinny działać jako root.

    [Service]
    User=admin
    ExecStart=/home/admin/pics
    
  • Wstrzykuj „poprawne” zmienne środowiskowe w procesie.

    [Service]
    Environment="DISPLAY=:0"
    User=admin
    ExecStart=/home/admin/pics
    
emp.justine
źródło