我曾經透過 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 上寫它,但答案越與發行版無關越好。