当我尝试在 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
事实证明这很简单,但与从标准系统的 repo 安装 Node.js 的人的“没有到 /usr/bin/node 的符号链接”问题无关。
这是主管的任务配置问题。即
PATH="$PATH:/home/ubu/.local/bin"
搞乱了一切。这是我从 ~/.local/bin 而不是全局运行 Node 时产生的产物。刚刚删除了它,重新加载了监督程序,现在应用程序运行良好 :)
希望它能对某人有所帮助。
答案3
大多数情况下,这是一个简单的命名问题,当您从包管理器安装时,您的 bin 文件可能被称为 nodejs,因此您只需要使用以下命令对其进行符号链接:
ln -s /usr/bin/nodejs /usr/bin/node