"/usr/bin/env nodo: No existe tal archivo de directorio" - sólo bajo Supervisor

"/usr/bin/env nodo: No existe tal archivo de directorio" - sólo bajo Supervisor

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 nvmel 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

información relacionada