¿Cómo reiniciar el servicio de usuario de otro usuario como root?

¿Cómo reiniciar el servicio de usuario de otro usuario como root?

Entonces tengo este escenario: user-aestá 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 systemctlcomo 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 --machineconexiones 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

información relacionada