Infelizmente, não, não é possível acessar as unidades que estão sendo executadas no gerenciador de unidades do systemd enquanto são executadas como root ...
É quase possível, executando systemctl --user status
como raiz, enquanto define a variável de ambiente XDG_RUNTIME_DIR
para apontar para /run/user/<uid>
(consulte o código relevante em bus_connect_user_systemd()
), mas infelizmente isso não é suficiente:
# XDG_RUNTIME_DIR=/run/user/1000 systemctl --user status
Failed to connect to bus: Operation not permitted
O problema é que, após conectar-se ao gerenciador de usuários, o systemd verifica se o uid executando systemctl
corresponde àquele que possui o soquete para o gerenciador (consulte o código relevante em bus_check_peercred()
).
Portanto, sua melhor opção é usar apenas su
para se tornar o usuário, a fim de verificar o status da unidade. Além disso, ao usar su
, você ainda precisa definir XDG_RUNTIME_DIR
, caso contrário, systemctl
pode não conseguir encontrar o soquete para o gerenciador:
# su cytrinox -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user status'
(Ou o comando systemctl status
apropriado que você deseja para sua unidade de fatia do Firefox ...)