Os serviços não são executados em contextos de sessões de login.
Seu PATH
não é correto, e o valor de PATH
em um shell em uma sessão de login é completamente irrelevante, assim como os scripts de inicialização do seu shell.
Um dos recursos dos sistemas de gerenciamento de serviços (em geral, não limitado ao systemd) é que eles iniciam todos os serviços com base em um único ambiente uniforme, modificado somente por elementos da definição de serviço ( seja lá o que é). Não tem nada a ver com como os shells de login configuram ambientes de usuário para sessões de login. (Não, não é o ambiente da sessão de login do root
).
No caso do systemd, sua definição de serviço é o arquivo da unidade de serviço e, a menos que você modifique PATH
nessa unidade, será qualquer valor padrão que todos os serviços sejam iniciados com . No caso do systemd, isso é documentado; e /usr/local/lib/nodejs/node-v8.11.4/bin/
não é na lista.
Se você quiser que PATH
seja algo diferente do padrão all-serviecs, será necessário modificar sua unidade de serviço com Environment=
settings para alterá-la.
Leitura adicional
- Lennart Poettering e cols. (2017). " Variáveis de ambiente em processos gerados ". systemd.exec . páginas de manual do systemd. Freedesktop.org.