我已经为特定用户(即非 root 用户)安装了所有 npm 包(/home/otheruser/*)
我正在使用 monit 来检查程序是否正在运行。在本例中是 pm2,它位于
/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2
即便我尝试在终端中使用其他用户的完整路径,即使是 root 用户,也无法使用 pm2。它没有给出任何输出,或者没有发生任何事情,如下所示。
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 list
每当我使用不同的用户运行节点模块时
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/forever -v
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/db-migrate -v
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 -v
我在系统日志中看到以下内容
node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured
如何让其他用户也能使用此功能
答案1
没有记录不是真正的程序。它是一个 bash 函数,加载到用户的 .profile、.bashrc 或 ... 中,因此 sudo 不会像大多数其他程序一样自动从 $PATH 中获取它。
您可以创建一个符号链接,然后尝试访问它
sudo ln -s "/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2" "/usr/local/bin"
答案2
您必须在尝试运行 pm2 命令的登录用户(root)的环境变量中添加以下内容,然后它才会起作用
NVM_DIR="/home/otheruser/.nvm"
NVM_BIN="/home/otheruser/.nvm/versions/node/v15.5.1/bin"
PATH="/home/otheruser/.nvm/versions/node/v10.15.3/bin"