
У меня установлены все пакеты npm для определенного пользователя (т.е. не root) (/home/otheruser/*)
Я использую monit, чтобы проверить, запущена ли программа. В этом случае это pm2, который находится в
/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2
Я не могу использовать pm2, даже когда я пытался использовать полный путь от других пользователей в терминале, даже с пользователем root. Это не дало никакого вывода или ничего не произошло, как показано ниже.
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
Вам нужно добавить следующее в переменную окружения вошедшего в систему пользователя (root), под которым вы пытаетесь запустить команду pm2, и тогда это сработает
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"