1.面板版本 7.1.1,2.操作系统版本:Linux7.2 64bit,3.浏览器无关
如是,重现方式,一般是先安装过PM2管理器,过一段时间之后,切换node环境导致pm2 程序升级了,进而导致内存中运行的pm2和本地的pm2版本不一致,
在插件应用的文件 pm2_main.py,未处理这种错误预期,导致 List 函数异常
修复建议,在pm2_main.py在第23行之后添加判断,如果返回文本包含 In-memory PM2 is out-of-date,则先执行 pm2 update,修改代码,已经测试,可以解决问题:
- tmp = public.ExecShell(self.__SR + "pm2 list -m|grep -v 'pm2 list'");
- if tmp[0].find("In-memory PM2 is out-of-date")>=0:
- tmp = public.ExecShell(self.__SR + "pm2 update");
- tmp = public.ExecShell(self.__SR + "pm2 list -m|grep -v 'pm2 list'");
复制代码
详情如下
pm2_main.py在第23行
- tmp = public.ExecShell(self.__SR + "pm2 list -m|grep -v 'pm2 list'");
复制代码 这一步时,返回的tmp的内容,和预期的不一致,多出如下内容
- >>>> In-memory PM2 is out-of-date, do:
- >>>> $ pm2 update
- In memory PM2 version: 4.2.1
- Local PM2 version: 4.2.3
复制代码
预期的是:
- +--- app1
- namespace : default
- version : 1.0.0
- pid : 4655
- pm2 id : 0
- status : online
- mode : fork
- restarted : 0
- uptime : 0s
- memory usage : 36.2mb
- error log : /root/.pm2/logs/app1-error.log
- watching : no
- PID file : /root/.pm2/pids/app1-0.pid
- +--- app2
- namespace : default
- version : 1.0.0
- pid : 4661
- pm2 id : 1
- status : online
- mode : fork
- restarted : 0
- uptime : 0s
- memory usage : 82.2mb
- error log : /root/.pm2/logs/app2-error.log
- watching : no
- PID file : /root/.pm2/pids/app2-1.pid
复制代码 实际返回是
- >>>> In-memory PM2 is out-of-date, do:
- >>>> $ pm2 update
- In memory PM2 version: 4.2.1
- Local PM2 version: 4.2.3
- +--- app1
- namespace : default
- version : 1.0.0
- pid : 4655
- pm2 id : 0
- status : online
- mode : fork
- restarted : 0
- uptime : 0s
- memory usage : 36.2mb
- error log : /root/.pm2/logs/app1-error.log
- watching : no
- PID file : /root/.pm2/pids/app1-0.pid
- +--- app2
- namespace : default
- version : 1.0.0
- pid : 4661
- pm2 id : 1
- status : online
- mode : fork
- restarted : 0
- uptime : 0s
- memory usage : 82.2mb
- error log : /root/.pm2/logs/app2-error.log
- watching : no
- PID file : /root/.pm2/pids/app2-1.pid
复制代码
|
|