如何在圖形變更時重新啟動 systemd 服務?

如何在圖形變更時重新啟動 systemd 服務?

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

相關內容