Então, eu tenho este cenário: user-a
está executando um serviço de usuário systemd user-a-service
. Sou root e quero reiniciar esse serviço de usuário. Não consigo encontrar uma maneira de fazê-lo. Basicamente eu quero isso:
systemctl --user user-a restart user-a-service
Observe que este não é um serviço de sistema normal executado com um usuário não root específico, mas um serviço de usuário real.
A única maneira de fazer isso é executando
systemctl
como esse usuário - e com as variáveis de ambiente apropriadas para permitir que ele encontre o barramento do usuário do D-Bus ou o soquete systemd privado:Com o systemd mais recente (v248), você pode usar
--machine
para conexões de loopback especificando o nome do host especial.host
; ele irá lidar com a configuração do ambiente chamando PAM(login) automaticamente: