OS起動時にPM2が自動起動するようにするためのsystemd用のserviceファイルを自動生成してくれるpm2 startup
というコマンドがあり、このコマンドを実行するととある別のコマンドを実行するように指示されるのですが、指示されたコマンドを実行しようとするとVolta error: Node is not available.
というエラーが表示されたりOSがメモリリークを起こして落ちたりする問題があったので調査してみたところ対処法が見つかったので共有です。
自分用の備忘録なのでめちゃくちゃ雑記です🙇
対処法
pm2 startup
実行時におそらく以下のようなコマンドを実行するように指示されると思います (rootユーザーで実行していない場合に限る)
sudo env PATH=$PATH:/home/{ユーザー名}/.volta/tools/image/node/{Node.jsのバージョン}/bin /home/{ユーザー名}/.volta/tools/image/packages/pm2/lib/node_modules/pm2/bin/pm2 startup systemd -u {ユーザー名} --hp /home/{ユーザー名}
これだと上記の問題に陥るので、以下のようなコマンドに読み替えて実行する。
sudo env PATH=/home/{ユーザー名}/.volta/tools/image/node/{Node.jsのバージョン}/bin:$PATH /home/{ユーザー名}/.volta/tools/image/packages/pm2/lib/node_modules/pm2/bin/pm2 startup systemd -u {ユーザー名} --hp /home/{ユーザー名}
対処法発見の経緯
VoltaのGitHubのIssueにて同様の事象を訴えている人を発見。
Voltaの開発者直々にトラブルシューティングしていた。 (該当リプライ)
nvm等他のバージョン管理ツールだと発生せず、Volta特有の事象のようです。
コメント