Estou executando o systemd via user (ou seja enable-linger $USER
) e interajo com os serviços viasystemctl --user
Notei um problema estranho.
Fornecimento Tipo 1
Para que o systemd acima funcione para um usuário, preciso adicionar export XDG_RUNTIME_DIR=/run/user/$(id -u)
dentro do meu~/.bashrc
Isso funciona bem.
Fornecimento Tipo 2
Quando, em vez disso, procuro meu bashrc da seguinte maneira, o systemd não funciona:
dentro .bashrc
:
source /path_to_file/my_file.env
dentro my_file.env
:
XDG_RUNTIME_DIR=/run/user/$(id -u)
Tanto o Sourcing Type 1 quanto o 2 produzem o mesmo resultado quando eu faço isso, echo $XDG_RUNTIME_DIR
então decidi ir com o Type 2. No entanto, notei que quando fiz systemctl --user daemon-reload
o daemon não estava rodando e recebi o seguinte erro:
Failed to connect to bus: No such file or directory
Quando eu volto para Souring Type 1, o erro desaparece e tudo funciona conforme o esperado.
Minha pergunta é: O que está acontecendo que estou perdendo aqui? Minha principal confusão decorre do fato de que as variáveis env são as mesmas, mas os resultados finais não são.