“/usr/bin/env node:没有这样的目录文件”-仅在 Supervisor 下

“/usr/bin/env node:没有这样的目录文件”-仅在 Supervisor 下

当我尝试在 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

相关内容