Fedora 20 Startskript beim Start

0

Ich versuche, in Fedora 20 automatisch eine Diashow zu starten. Ich habe mit einem einfachen Skript begonnen. eog ist "eye on gnome", ein Diashow-Viewer, und meine Bilder befinden sich im Verzeichnis / home / admin / Downloads. Das funktioniert einwandfrei.

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

Als nächstes habe ich eine Unit-Datei in / etc / systemd / system erstellt

[Unit]
Description=Starts the pics program

[Service]
ExecStart=/home/admin/pics

[Install]
WantedBy=graphical.target

Als ich versuchte, das Startskript auszuführen, wurde Folgendes angezeigt

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.

Nach Recherchen stellte ich fest, dass ich Folgendes einbeziehen muss, aber egal, wo ich es hinstelle, ich bekomme immer wieder andere Fehler. Anscheinend hat es etwas damit zu tun, ein Programm als anderer Benutzer auszuführen. Kann ich Hilfe beim Reparieren meines Codes bekommen?

 pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY 
user3456757
quelle

Antworten:

0

Verwenden Sie stattdessen den Autostart der Desktop-Anwendung .

Innen $XDG_CONFIG_HOME/autostart/(Standard: $HOME/.config/autostart), erstellen Sie eine pics.desktopDatei soll, dass enthalten:

[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

Wenn Sie wirklich systemd Einheiten verwenden möchten, mindestens:

  • Ändern Sie den Prozess, um Nicht-Root-UIDs zu verwenden. Grafische Apps sollten nicht als Root ausgeführt werden.

    [Service]
    User=admin
    ExecStart=/home/admin/pics
    
  • Injizieren Sie "richtige" Umgebungsvariablen beim Prozess.

    [Service]
    Environment="DISPLAY=:0"
    User=admin
    ExecStart=/home/admin/pics
    
emp.justine
quelle