pm2多进程合并日志

5 篇文章 0 订阅
1 篇文章 0 订阅

pm2开启多进程

pm2是一个能够开启多进程,处理高并发的环境

安装PM2

npm install pm2 -g

启动PM2

pm2 start xxx 

在这里插入图片描述

默认启动是单实例fork模式。甚至可以用来启动PHP等脚本语言,个人觉得,在非集群模式下用fork模式跑pm2启动的项目基本上就是废了,还不如不用pm2。

pm2 start xxx -i 0

在这里插入图片描述

(备注:cpu有几核就启动几个cluster进程,如果指定>0 就按指定数字启动进程,进程数最高不高于cpu核心数,在非集群(k8s环境下,已经提供多实例环境了,再开cluster意义不大了)环境强烈推荐使用cluster模式,利用pm2提供的负载均衡,充分利用cpu)

停止PM2进程

停止指定pm2启动的进程

pm2 stop xxx

停止所有pm2进程

pm2 stop all

删除PM2进程

删除指定启动的进程

pm2 delete xxx

删除所有启动进程

pm2 delete all

杀死进程

pm2 kill

与上面的 pm2 delete all 删除进程的区别就是kill是彻底杀死进程,进程号会从头开始计算,delete删除进程后,启动新进程会延续上次的进程号继续往上加
eg:

操作1

用delete强制删除进程
在这里插入图片描述

再次启动多进程后,注意看前面的id号
在这里插入图片描述

操作2

用kill 杀死进程
在这里插入图片描述
再次启动,发现id号已经从头开始计算了
在这里插入图片描述

重启PM2进程

PM2重启指定项目进程

pm2 restart xxx

PM2重启所有项目进程

pm2 restart all

可以实现平滑无感知重启,项目不会中断

日志

查看所有日志

pm2 logs

在这里插入图片描述

查看json格式日志

pm2 logs --json

在这里插入图片描述

写入日志文件的日志为json格式

pm2 start xxx -i 0 --log-type=json

在这里插入图片描述

合并日志

如果是fork模式,如果没有指定日志位置,pm2日志默认位置在
Linux/Mac:

/root/.pm2/logs/

Windows系统:

C:\Users\用户\.pm2\logs

注意1:如果用cluster模式,并且没有指定启动进程数,默认是主动合并进程日志,如果指定进程数,就会按进程数生成进程日志文件
默认是这样的:

在这里插入图片描述
如果是pm2 start xxx -i num启动,则会有进程日志文件
eg:我启动3个进程
在这里插入图片描述
生成日志是这样的
在这里插入图片描述

注意2:如果是fork模式,生成出来的日志和用-i 0启动是一样的没有进程日志

操作1:当确实需要用到指定进程数启动的话,又想合并日志,可以使用

pm2 start ./bin/www -i 3 --log-type=json --merge-logs -l --log /root/.pm2/logs/merge.log

在这里插入图片描述
合并后的日志(多进程的标准日志和错误日志合在一起了)
在这里插入图片描述
操作2:在多进程模式下,当想分开标准日志和错误日志的话,且合并多进程日志,可以使用

pm2 start ./bin/www -i 3 --log-type=json --merge-logs --output /root/.pm2/logs/out.log --error /root/.pm2/logs/error.log

在这里插入图片描述

清空日志

pm2 flush

在这里插入图片描述

轮询备份日志

安装pm2-logrotate

pm2 install pm2-logrotate

轮询备份日志

pm2 set pm2-logrotate:max_size 100M; 
pm2 set pm2-logrotate:retain 3

上面命令分别是:

  1. 当超过100M后备份
  2. 轮询3个日志文件,超过3个后,自动替换掉最前面的日志文件

默认是30S检查一次
详细配置进:官网地址

常用命令总结

命令作用
pm2 start app.js启动fork模式
pm2 start app.js -i num启动cluster模式
pm2 restart app.js重启应用
pm2 restart all重启所有应用
pm2 stop app.js停止项目
pm2 stop all停止所有项目
pm2 delete app.js删除项目进程
pm2 delete all删除所有项目进程
pm2 kill杀死所有项目进程
pm2 logs查看所有pm2日志
pm2 flush清空所有pm2日志
pm2 start app.js -i 0 --log-type=json用json格式记录日志
pm2 start app.js -i 3 --log-type=json --merge-logs --output /path/xxx.log --error /path/xxx.log用json格式记录且合并日志
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锅巴胸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值