すべての npm パッケージを特定のユーザー (つまり、root ではないユーザー) (/home/otheruser/*) にインストールしました
私はmonitを使ってプログラムが実行中かどうかを確認しています。この場合、pm2は
/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2
ルート ユーザーであっても、ターミナルで他のユーザーからのフル パスを使用しても、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
そして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
他のユーザーからそれを機能させる方法
答え1
いいえ実際のプログラムではありません。これは、ユーザーの .profile、.bashrc などに読み込まれる bash 関数なので、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"