![如何在图形更改时重新启动 systemd 服务?](https://linux22.com/image/109514/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%9B%BE%E5%BD%A2%E6%9B%B4%E6%94%B9%E6%97%B6%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%20systemd%20%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
我曾经通过 Upstart 脚本运行 Synergy,其中包括:
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 检测新配置。
我正在为 Synergy 编写 Systemd 服务文件,但我找不到等效的机制。man systemd.special
没有列出任何与图形相关的目标,systemctl list-units --type=device
只显示图形适配器(而不是显示器),我不清楚如何让 Systemd 在特定事件上停止和启动服务。
我怎样才能做这些事情呢?我在 Ubuntu 16.04 上编写它,但答案越与发行版无关越好。