[英]How to start systemd user service when device is removed, and stop it when device is inserted
Systemd 允許使用 SYSTEMD_USER_WANTS 環境和 StopWhenUnneeded 選項從 udev 規則啟動/停止服務。 但是,插入設備時將啟動服務,並在移除設備時停止服務。 我需要的是反之亦然:
由於它是用戶服務,從 udev 規則運行 'systemctl start/stop...' 失敗。
這個問題的 udev 規則是
..., ACTION=="add", RUN+="/usr/bin/su USER -c 'systemctl --user stop my-service'"
..., ACTION=="remove", RUN+="/usr/bin/su USER -c 'systemctl --user stop my-service'"
重點是:
SYSTEMD_WANTS
/ SYSTEMD_USER_WANTS
,應該使用 systemctl 啟動/停止服務,因為啟動/停止與設備添加/刪除不匹配。su
+ systemctl --user
使用。RUN
udev 密鑰應該來自/usr/lib/udev
或必須使用絕對傳遞( man udev
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.