我是靠谱客的博主 认真春天,最近开发中收集的这篇文章主要介绍PM2 学习笔记安装PM2常用命令管理SpringBoot 项目日志分割参考资料,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

PM2 学习笔记

  • 安装
  • PM2常用命令
  • 管理SpringBoot 项目
    • 创建脚本 & 运行服务
    • 设置自启动(开机启动)
  • 日志分割
  • 参考资料

PM2Nodejs下的进程守护工具,无论win还是linux它都能帮您实现服务的7*24在线。

安装

  1. 先安装 nodejs 参考:Nodejs 学习笔记 下载安装
  2. 全局安装 pm2 : (会装在/usr/node/bin/pm2)
npm install pm2 -g
  1. 创建软链接。完成安装
ln -sf /usr/node/bin/pm2 /usr/local/bin/
  1. 查看服务列表试试。(虽然列表是空的,但是我们看到命令生效了)
pm2 list

在这里插入图片描述

PM2常用命令

服务名称还可换成:all所有服务 、id 指定服务、例:服务名为 sss

参数功能例子别名
-h显示帮助信息pm2 -h
list显示服务列表pm2 listls/l/ps/status
start service-name启动服务。支持指定服务名 --name sss666
备注:第一次启动要写脚本名 sss.json 启动后服务名就注册成功了可以用了。但是平时手动操作用ID更方便?
pm2 start sss
stop service-name停止服务pm2 stop sss
restart service-name重启服务pm2 restart sss
reload service-name重启服务(热加载)pm2 reload sss
log service-name查看日志pm2 log sss
log –lines 500查看最新500行pm2 log --lines 500 sss
delete service-name删除服务
备注:修改过启动配置脚本的,要先删再启动才有效。
pm2 del sssdel
describe service-name查看服务详情
忘记配置文件和jar在哪时非常好用
pm2 desc sssdesc/info/show
--——————————————-
save保存当前服务列表pm2 saveexpose
startup当前保存的服务列表,设置为自启动pm2 startup
unstartup取消自启动。
如果更新了服务的启动脚本,要先停一次再开
pm2 unstartup
flush清空所有日志pm2 flush

管理SpringBoot 项目

创建脚本 & 运行服务

  1. 打包SpringBoot项目得到jar包demo.jar,上传到/home/demo/demo.jar
  2. 编写配置文件 demoService.json,上传到/home/demo/demoService.json
字段说明
name"sss"启动成功后,此字段的值将注册成为服务名称。(配置文件名和服务名保持一致方便记忆)
script"java"要执行的程序,比如java。因为已经在环境变量中,可以直接写
cwd"var/www/"the directory from which your app will be launched
args"-jar", "demo.jar", "--server.port=8080"程序的运行参考。我们要运行 jar
exec_interpreterNodeJs解析器。本项目无视即可
exec_modefork非NodeJs固定写fork
watchtruetrue时,如果配置脚本发生变化,将自动重启。(生产环境不建议使用)
log_date_format"YYYY-MM-DD HH:mm Z"日志时间格式。momentjs 日期格式语法
error_file错误日志位置。默认:$HOME/.pm2/logs/XXXerr.log
out_file信息日志位置。默认:$HOME/.pm2/logs/XXXout.log
{
    "name": "demoService",
    "script": "java",
    "args": [
        "-jar",
        "-Dserver.port=8001",
		"-D-Xms512m",
		"-D-Xmx512m",
        "demo.jar"
    ],
    "out_file" : "D:/logs/demo-out.log",
    "error_file" : "D:/logs/demo-err.log",
    "exec_interpreter": "",
    "exec_mode": "fork"
}

  1. 启动服务
pm2 start demoService.json

设置自启动(开机启动)

  1. 生成启动脚本pm2 startup
pm2 startup
  1. 保存当前服务列表pm2 save
[root@iZuf6fu80p2mfzoh619ifjZ ~]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2

执行成功的会显示信息保存的位置。(感觉我也不会手动去看它吧)

日志分割

pm2默认无分割日志功能 ,所以需要安装插件:pm2-logrotate

  • 安装
pm2 install pm2-logrotate
  • 安装完成后,设置参数:
pm2 set pm2-logrotate:<参数> <>
参数默认值用途
max_size10M当一个文件的大小超过这个值时,它将旋转它(它可能是工作人员在它实际超过限制后检查文件)。 在结束时可以指定单位:10G, 10M, 10K
retain30这个数字是任何时间保存的旋转日志的数量,这意味着如果你有retain = 7,你将最多有7个旋转的日志和你当前的一个。
compressfalse启用通过gzip压缩所有已旋转的日志
dateFormatYYYY-MM-DD_HH-mm-ss日志文件名数据的格式
rotateModuletrue像其他应用程序一样旋转pm2模块的日志
workerInterval30你可以控制worker检查日志大小的时间间隔(最小值为1)
rotateInterval0 0 * * * 每天午夜这个cron用于执行强制旋转。 我们使用node-schedule来调度cron,因此所有用于node-schedule的有效cron都是此选项的有效cron。 Cron风格:
TZ系统时间这是标准的TZ数据库时区,用于偏移保存的日志文件。 例如,Etc/GMT+1的值带有每小时的日志,将在格林尼治时间14时保存一个文件,日志名称中包含13时(GMT+1)。
*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    |
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)
  • 配置参考
pm2 set pm2-logrotate:max_size 1K (1KB)
pm2 set pm2-logrotate:compress true (compress logs when rotated)
pm2 set pm2-logrotate:rotateInterval '*/1 * * * *' (force rotate every minute)

参考资料

PM2 快速入门:quick-start
PM2自启动脚本生成器:Startup Script Generator
PM2 Start 配置脚本
momentjs 日期格式语法
日志插件 pm2-logrotate

最后

以上就是认真春天为你收集整理的PM2 学习笔记安装PM2常用命令管理SpringBoot 项目日志分割参考资料的全部内容,希望文章能够帮你解决PM2 学习笔记安装PM2常用命令管理SpringBoot 项目日志分割参考资料所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部