「/usr/bin/env 節點:目錄中沒有這樣的檔案」 - 僅在 Supervisor 下

「/usr/bin/env 節點:目錄中沒有這樣的檔案」 - 僅在 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

事實證明它非常簡單,但與從標準系統儲存庫安裝 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

相關內容