首页 文章

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

提问于
浏览
5

将Node.js从v10.16更新到v10.32后,未检测到PM2,但在使用ps aux检查时运行正常 . 即使在系统重启时,即使手动PM2命令导致以下类型的错误,PM2也能正常运行 .

pm2 list 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后是否需要进行此操作?

3 回答

  • 0

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

    你可以让shell sript一气呵成 .

    对于不安全的东西,仅当你以root身份安装pm2时才会出现这种情况 . 当你认为pm2对机器的进程有很大的控制权时,这是有道理的 .

  • 0

    在节点更新后没有重新安装PM2似乎没有办法:-(

    $ nvm install 6.11.3 --reinstall-packages-from=6.11.2 && nvm alias default 6.11.3
    $ nvm uninstall 6.11.2
    $ pm2 updatePM2 # Update in memory pm2
    $ pm2 startup
    $ nano /etc/init.d/pm2-init.sh  # Wrong path :-(
    

    但是重新安装pm2并不适用,有些事情仍然被打破,即使它似乎工作,日志不再是实时的,例如我的热修复:

    $ rm -rf /root/.pm2
    $ pm2 reload pm2.json --env production
    $ pm2 startup ubuntu
    
  • 1

    在更新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
    

相关问题