
Ich habe alle npm-Pakete für einen bestimmten Benutzer installiert (also nicht für Rootbenutzer (/home/otheruser/*)).
Ich verwende monit, um zu prüfen, ob das Programm läuft. In diesem Fall ist es pm2, das sich in
/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2
Ich kann pm2 nicht verwenden, selbst wenn ich versucht habe, den vollständigen Pfad anderer Benutzer im Terminal zu verwenden, sogar mit Root-Benutzer. Es gab keine Ausgabe oder es ist nichts passiert, wie unten.
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 list
immer wenn ich Node-Module mit verschiedenen Benutzern ausführe, wie
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
Und ich bekomme das Folgende im 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
So funktioniert es bei anderen Benutzern
Antwort1
keine Ahnungist kein echtes Programm. Es ist eine Bash-Funktion, die in das .profile, .bashrc oder ... des Benutzers geladen wird, sodass sudo sie nicht wie die meisten anderen Programme automatisch aus dem $PATH abruft.
Sie können einen symbolischen Link erstellen und dann versuchen, darauf zuzugreifen
sudo ln -s "/home/andererBenutzer/.nvm/versions/node/v5.2.0/bin/pm2" "/usr/local/bin"
Antwort2
Sie müssen das Folgende in die Umgebungsvariable des angemeldeten Benutzers (Root) einfügen, in dem Sie versuchen, den pm2-Befehl auszuführen, und dann wird es funktionieren
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"