
Cuando intento ejecutar aplicaciones Node.js desde Supervisor, aparece el siguiente error:
/usr/bin/env node: No such file of directory
Es una máquina que ejecuta Ubuntu 16.04 y en realidad tiene /usr/bin/node instalado y tiene un enlace simbólico a /usr/bin/nodejs. lo instalé desdeRepositorio Node.js. Entonces cuando corro
node -v
/usr/bin/env node -v
Yo obtengo:
v9.7.1
La configuración de mi aplicación para Supervisor (v 3.2.0) es:
[program:verdaccio]
command=/usr/bin/verdaccio
autostart=true
autorestart=true
user=ubu
environment=HOME="/home/ubu",USER="ubu",PATH="$PATH:/home/ubu/.local/bin"
¿Qué ocurre?
Respuesta1
Si está utilizando nvm
el administrador de versiones de nodos, utilice este comentario para crear un enlace simbólico:
sudo ln -s "$(which node)" /usr/bin/node
Respuesta2
Resulta que es bastante simple, pero no tiene nada que ver con el problema de "no hay enlace simbólico a /usr/bin/node" de las personas que instalaron Node.js desde el repositorio estándar del sistema.
Es un problema de configuración de tareas del supervisor. Es decir, que
PATH="$PATH:/home/ubu/.local/bin"
está arruinando las cosas. Es un artefacto de una época en la que ejecutaba Node desde ~/.local/bin, no globalmente. Simplemente lo eliminé, recargué el supervisor y ahora la aplicación funciona bien :)
Espero que ayude a alguien.
Respuesta3
La mayoría de las veces, esto es un simple problema de nombres; cuando instala desde un administrador de paquetes, su archivo bin puede llamarse nodejs, por lo que solo necesita vincularlo simbólicamente usando el comando:
ln -s /usr/bin/nodejs /usr/bin/node