更新Node.js后更新PM2的正确方法

Nel*_*els 5 node.js pm2

将Node.js从v10.16更新到v10.32之后,未检测到PM2,但是在通过ps aux检查时,PM2运行良好。即使系统重新启动,即使手动PM2命令导致以下错误类型,PM2仍能正常工作。

pm2列表pm2:找不到命令

将Node.js切换回10.16和PM2命令再次可用。fyi PM2最初安装在v10.16下。

在v10.32中尝试使用PM2安装命令npm install pm2 -g,但必须使用命令npm install pm2 -g --unsafe-perm才能运行。

Node.js v10.16现在运行PM2 v10.1。Node.js v10.32现在运行PM2 v10.8。

这是使PM2版本保持同步并与Node升级/更改一起使用的正确方法吗?安装每个新版本的Node之后是否需要执行此操作?

小智 11

在控制台中:

  1. pm2 save--首先确保您正确保存了所有流程
  2. npm install pm2 -g--然后从NPM安装最新的PM2版本
  3. pm2 update--最后更新内存中的PM2进程


mol*_*oco 8

Node 更新后似乎没有重新安装 PM2 的办法:-(

$ nvm install 6.11.3 --reinstall-packages-from=6.11.2 && nvm alias default 6.11.3
$ nvm uninstall 6.11.2
$ pm2 update # Update in memory pm2
$ pm2 startup
$ nano /etc/init.d/pm2-init.sh  # Wrong path :-(
Run Code Online (Sandbox Code Playgroud)

但重新安装 pm2 还不够,即使看起来有效,有些东西仍然损坏,日志不再是实时的,例如我的修补程序:

$ rm -rf /root/.pm2
$ pm2 reload pm2.json --env production
$ pm2 startup ubuntu
Run Code Online (Sandbox Code Playgroud)


xSh*_*ase 6

当您切换节点版本时,您也会切换软件包,因此您需要在节点更新时重新安装pm2。幸运的是,这种情况并不经常发生。

您可以制作一个 shell 脚本来一次性完成这两件事。

对于 unsafe-perm 的事情,只有当你以 root 身份安装 pm2 时才会出现。当您认为 pm2 对您的机器进程有相当多的控制时,这是有道理的。


ktr*_*yak 5

更新 node.js 版本后不要忘记重新构建包:

cd /to/root/of/your/project
npm rebuild
npm i -g pm2 && pm2 update

# here 0 and dist/main.js change for your project
pm2 delete 0 && pm2 start dist/main.js
Run Code Online (Sandbox Code Playgroud)