Autorestart: Eine systemd user-unit anlegen/erstellen

Aus DebianforumWiki
Wechseln zu: Navigation, Suche
WikiGrafische Oberflächen ‹ Autorestart: Eine systemd user-unit anlegen/erstellen


Programme wie Mail-Client und IM startet man i.d.R. über den Autostart der Desktopumgebung, damit diese bei der Anmeldung automatisch im Hintergrund starten und über neue Nachrichten informieren.

Ein Man­ko der Desktop Application Autostart Specification ist, dass diese Anwendungen nicht neu-starten, wenn sie versehentlich beendet wurden. Eine Lösung bieten hier systemd user-units als ein Autorestart.

User-Unit für Icedove anlegen/erstellen

Alle systemd user-units werden unter ~/.config/systemd/user/ gespeichert. Hier ein Beispiel für den Mail-Client Icedove:

$ cat ~/.config/systemd/user/icedove.service 
[Unit]
Description=Icedove

[Service]
ExecStart=/usr/bin/icedove
Restart=always
Environment=DISPLAY=:0

[Install]
WantedBy=basic.target

Damit eine Unit nach der Anmeldung ausgeführt wird, muss diese mit systemctl --user enable <NAME> aktiviert werden:

$ cd ~/.config/systemd/user/
$ systemctl --user reenable *.service

Die systemd user-units ersetzen dann den XDG-Autostart und systemd überwacht den Prozess (PID) und startet diesen ggf. neu.

Siehe auch: http://www.freedesktop.org/software/systemd/man/systemd.directives.html

User-Units systemweit für alle Benutzer anlegen und aktivieren

Soll eine User-Unit für alle Benutzer angelegt werden, erstellt man die Unit im Verzeichnis /etc/systemd/user/ und verlinkt diese ins Verzeichnis /etc/systemd/user/default.target.wants/. Durch das Verlinken erspart man sich das separate aktivieren für jeden Benutzer.