
Quando tento executar aplicativos Node.js no Supervisor, recebo o seguinte erro:
/usr/bin/env node: No such file of directory
É uma máquina rodando Ubuntu 16.04 e na verdade há /usr/bin/node instalado e está vinculado a /usr/bin/nodejs. Eu instalei deRepositório Node.js.. Então, quando eu corro
node -v
/usr/bin/env node -v
Eu recebo:
v9.7.1
A configuração da minha aplicação para Supervisor (v 3.2.0) é:
[program:verdaccio]
command=/usr/bin/verdaccio
autostart=true
autorestart=true
user=ubu
environment=HOME="/home/ubu",USER="ubu",PATH="$PATH:/home/ubu/.local/bin"
O que está errado?
Responder1
se você estiver usando nvm
o gerenciador de versão do nó, use este comentário para criar um link simbólico:
sudo ln -s "$(which node)" /usr/bin/node
Responder2
Acontece que é bastante simples, mas não tem nada a ver com o problema "nenhum link simbólico para/usr/bin/node" de pessoas que instalaram o Node.js a partir do repositório padrão do sistema.
É um problema de configuração de tarefas do Supervisor. Ou seja, isso
PATH="$PATH:/home/ubu/.local/bin"
está bagunçando as coisas. É um artefato de uma época em que executei o Node de ~/.local/bin não globalmente. Acabei de excluí-lo, recarreguei o supervisor e agora o aplicativo está funcionando bem :)
Espero que ajude alguém.
Responder3
Na maioria das vezes, esse é um problema de nomenclatura simples. Quando você instala a partir de um gerenciador de pacotes, seu arquivo bin pode ser chamado de nodejs, então você só precisa vinculá-lo usando o comando:
ln -s /usr/bin/nodejs /usr/bin/node