将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
在控制台中:
pm2 save--首先确保您正确保存了所有流程npm install pm2 -g--然后从NPM安装最新的PM2版本pm2 update--最后更新内存中的PM2进程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)
当您切换节点版本时,您也会切换软件包,因此您需要在节点更新时重新安装pm2。幸运的是,这种情况并不经常发生。
您可以制作一个 shell 脚本来一次性完成这两件事。
对于 unsafe-perm 的事情,只有当你以 root 身份安装 pm2 时才会出现。当您认为 pm2 对您的机器进程有相当多的控制时,这是有道理的。
更新 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)
| 归档时间: |
|
| 查看次数: |
5583 次 |
| 最近记录: |