如何以root身分重新啟動另一個使用者的使用者服務?

如何以root身分重新啟動另一個使用者的使用者服務?

所以我有這樣的場景:user-a正在運行 systemd 用戶服務user-a-service。我是 root,我想重新啟動該用戶服務。我找不到辦法這樣做。基本上我想要這個:

systemctl --user user-a restart user-a-service

請不要這樣不是使用特定非 root 使用者執行的普通系統服務,但實際的使用者服務。

答案1

執行此操作的唯一方法是以systemctl該使用者身分執行 - 並使用適當的環境變數以允許其找到 D-Bus 使用者匯流排或專用 systemd 套接字:

sudo -u user-a XDG_RUNTIME_DIR="/run/user/$(id -u user-a)" systemctl --user restart user-a-service

使用較新的 systemd (v248),您可以--machine透過指定特殊主機名稱來用於環回連線.host;它將透過自動呼叫 PAM(login) 來處理環境設定:

systemctl --machine [email protected] --user restart user-a-service

相關內容