以前は、次の内容を含む 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 でこれを書いていますが、答えがディストリビューションに依存しないほど良いです。