Entonces tengo este escenario: user-a
está ejecutando un servicio de usuario systemd user-a-service
. Soy root y quiero reiniciar ese servicio de usuario. No puedo encontrar una manera de hacerlo. Básicamente quiero esto:
systemctl --user user-a restart user-a-service
Por favor no que estonoun servicio normal del sistema que se ejecuta con un usuario no root específico, pero es un servicio de usuario real.
Respuesta1
La única manera de hacer esto es ejecutando systemctl
como ese usuario – y con las variables de entorno apropiadas para permitirle encontrar el bus de usuario D-Bus o el socket privado systemd:
sudo -u user-a XDG_RUNTIME_DIR="/run/user/$(id -u user-a)" systemctl --user restart user-a-service
Con el systemd más nuevo (v248), puede utilizar --machine
conexiones de bucle invertido especificando el nombre de host especial .host
; manejará la configuración del entorno llamando a PAM (iniciar sesión) automáticamente:
systemctl --machine [email protected] --user restart user-a-service