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 Manko 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.