
Supervisor에서 Node.js 애플리케이션을 실행하려고 하면 다음 오류가 발생합니다.
/usr/bin/env node: No such file of directory
Ubuntu 16.04를 실행하는 시스템이고 실제로는 /usr/bin/node가 설치되어 있으며 /usr/bin/nodejs에 심볼릭 링크되어 있습니다. 나는 그것을 설치했다Node.js 저장소. 그래서 내가 달릴 때
node -v
/usr/bin/env node -v
나는 얻다:
v9.7.1
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"
뭐가 문제 야?
답변1
노드 버전 관리자를 사용하는 경우 nvm
이 주석을 사용하여 심볼릭 링크를 생성하세요.
sudo ln -s "$(which node)" /usr/bin/node
답변2
이는 매우 간단하지만 표준 시스템 저장소에서 Node.js를 설치한 사람들의 "/usr/bin/node에 대한 심볼릭 링크 없음" 문제와는 아무런 관련이 없습니다.
Supervisor의 작업 구성 문제입니다. 즉
PATH="$PATH:/home/ubu/.local/bin"
일을 엉망으로 만들고 있어요. 전역이 아닌 ~/.local/bin에서 Node를 실행했을 때의 유물입니다. 방금 삭제하고 감독자를 다시 로드하면 이제 애플리케이션이 잘 실행됩니다. :)
누군가에게 도움이 되기를 바랍니다.
답변3
대부분의 경우 이것은 단순한 이름 지정 문제입니다. 패키지 관리자에서 설치할 때 bin 파일은 nodejs라고 불릴 수 있으므로 다음 명령을 사용하여 심볼릭 링크하면 됩니다.
ln -s /usr/bin/nodejs /usr/bin/node