
Eu tenho todos os pacotes npm instalados para um usuário específico (ou seja) não root (/home/otheruser/*)
Estou usando o monit para verificar se devo verificar se o programa está em execução. Neste caso é pm2, que está em
/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2
Não consigo usar o pm2 mesmo quando tentei usar o caminho completo de outros usuários no terminal, mesmo com o usuário root. Não deu nenhum resultado ou nada aconteceu como abaixo.
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 list
sempre que executo módulos de nó com usuários diferentes, como
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
E eu recebo o abaixo no syslog
node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured
Como fazer isso funcionar com outros usuários
Responder1
nvmnão é um programa real. É uma função bash que é carregada no .profile, .bashrc ou ... do usuário, então o sudo não a seleciona automaticamente no $PATH como a maioria dos outros programas.
Você pode criar um link simbólico e tentar acessá-lo
sudo ln -s "/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2" "/usr/local/bin"
Responder2
Você deve adicionar o seguinte na variável de ambiente do usuário logado (root) no qual você está tentando executar o comando pm2 e então funcionará
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"