PM2 一个守护进程管理器

PM2 是 node 进程管理工具,可以利用它来简化很多 node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。

官方

官网
GitHub
文档

PM2 简介

PM2 原先是 nodejs 应用的进程管理工具,不过其良好的设计以及扩展性可以手动执行执行进程。

前提

需要 nodejs 环境

yum install nodejs npm -y #使用淘宝镜像源 npm config set registry https://registry.npmmirror.com

001.png

安装

最新的 PM2 版本可通过 NPM 或 Yarn 安装:

npm install pm2@latest -g # or yarn global add pm2

查看应用程序

查看所有被 PM2 管理的进程列表

pm2 list

使用 pm2 list 命令报错 -bash: pm2: command not found

原因

虽然通过 npm install pm2 -g 安装了 pm2,但是没有配制到全局,此时需要创建一个 linux 下的软连接。

解决

给 pm2 程序添加一个软链接。

首先,我们需要找到 pm2 程序所在路径,通过 find / -name pm2 找到 pm2 安装后的所在路径

002.png

接着执行 ln -s /opt/software/node/bin/pm2 /usr/local/bin/ 命令为 pm2 程序添加软链接

PM2 之 SpringBoot

Spring Boot 开发 web 应用就像开发普通的 java 程序一般简洁,因为其内嵌了 web 容器,启动的时候只需要一条命令 java -jar server.jar 即可,非常方便。但是由此而来的问题是万一应用挂了怎么办?别担心,有 pm2 进程管理工具可以帮到你。

PM2 基本命令

更多命令请参考:PM2 官方文档

# 查看所有被PM2管理的进程列表 pm2 list # 启动一个应用 pm2 start xxx # 停止一个应用 pm2 stop xxx # 重启一个应用 pm2 restart xxx # 查看应用详情 pm2 describe xxx # 以下命令,用来保证服务器启动时,pm2管理的程序自动运行 pm2 startup pm2 save

Java 程序处理,在 jar 的同级目录新建应用启动配置文件,如 pm2.json,内容如下:

{ // 进程名称(显示在pm2 list命令中) "name": "my-server", // 执行进程名称,如果需要执行PHP脚本则填写php解释器的路径,本文为java "script": "/usr/java/jdk1.8.0_201/bin/java", // 传给执行进程的参数,多个参数以数组单元分割 "args": [ "-jar", "server.jar" ], // NodeJs解析器 "exec_interpreter": "", // 执行模式[cluster|fork]这个针对NodeJs应用的配置,非NodeJs应用统一fork "exec_mode": "fork" }

实战

  1. 在 jar 的同级目录新建应用启动配置文件,如 bbs-rest.json,内容如下:

003.png

  1. 编辑配置文件内容

更多参数请参考:PM2 官方文档

{ "name": "bbs-rest", "script": "/usr/lib/jvm/jdk1.8.0_221/bin/java", "args": [ "-Xms32m", "-Xmx64m", "-jar", "bbs-rest.jar", "1>>/dev/null", "2>&1", "--spring.profiles.active=prod" ], "exec_interpreter": "", "exec_mode": "fork" }
  1. 启动项目
    执行启动命令:pm2 start bbs-rest.json

004.png

开机启动

接下来我们要做的是把 pm2 加入到开机启动中去,以便于 pm2 会随着服务器开机自启动,运行以下命令:

# 在/etc/init.d/目录下生成pm2-root的启动脚本,且自动将pm2-root设为服务 pm2 startup # 将当前pm2所运行的应用保存在/root/.pm2/dump.pm2下,当开机重启时,运行pm2-root服务脚本,并且到/root/.pm2/dump.pm2下读取应用并启动 pm2 save

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...