Wie kann ich einen systemd-Dienst bei Grafikänderungen neu starten?

Wie kann ich einen systemd-Dienst bei Grafikänderungen neu starten?

Früher habe ich Synergy über ein Upstart-Skript ausgeführt, das Folgendes enthielt:

start on (login-session-start
          ...
          or drm-device-added
          or drm-device-changed
          or drm-device-removed
          or graphics-device-added
          or graphics-device-changed
          or graphics-device-removed
          ...)

stop on (drm-device-added
         or drm-device-changed
         or drm-device-removed
         or graphics-device-added
         or graphics-device-changed
         or graphics-device-removed
         ...)

Dadurch wird der Dienst gestoppt und neu gestartet, wenn beispielsweise ein Monitor angeschlossen oder getrennt wird, sodass Synergy die neue Konfiguration erkennt.

Ich schreibe Systemd-Servicedateien für Synergy, kann aber keinen entsprechenden Mechanismus finden. man systemd.specialEs werden keine grafikbezogenen Ziele aufgelistet, systemctl list-units --type=devicees wird nur der Grafikadapter angezeigt (nicht der Monitor) und mir ist nicht klar, wie ich Systemd dazu bringe, einen Dienst bei einem bestimmten Ereignis zu stoppen und zu starten.

Wie kann ich diese Dinge tun? Ich schreibe es auf Ubuntu 16.04, aber je distributionsunabhängiger die Antwort ist, desto besser.

verwandte Informationen