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.special
Es werden keine grafikbezogenen Ziele aufgelistet, systemctl list-units --type=device
es 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.