Раньше я запускал Synergy через скрипт Upstart, который включал:
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
...)
Это остановит и запустит службу, если, например, монитор был подключен или отключен, чтобы Synergy мог обнаружить новую конфигурацию.
Я пишу файлы служб Systemd для Synergy, но не могу найти эквивалентный механизм. man systemd.special
не перечисляет никаких целей, связанных с графикой, systemctl list-units --type=device
показывает только графический адаптер (не монитор), и мне не ясно, как заставить Systemd останавливать и запускать службу при определенном событии.
Как мне это сделать? Я пишу это на Ubuntu 16.04, но чем более независим от дистрибутива ответ, тем лучше.