pm2好用的node进程管理工具,监控进程开机自启动,java进程配置,安装Nodejs环境

pm2好用的node进程管理工具,监控进程开机自启动,java进程配置,安装Nodejs环境

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

pm2 是一个带有负载均衡功能的Node应用的进程管理器.
当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。

常用命令:pm2 list 查看当前进程,pm2 monit 进程监控,pm2 startup pm2 save 开机自启动设置。

注:java 生态自动化监控一般用:prometheus

安装PM2
需要先安装Nodejs环境(文章后面附有安装教程),建议使用淘宝镜像cnpm
使用cnpm命令安装全局的pm2
cnpm install -g pm2

PM2基本命令
pm2 list 查看所有被PM2管理的进程列表
pm2 start xxx 启动一个应用
pm2 stop xxx 停止一个应用
pm2 restart xxx 重启一个应用
pm2 describe xxx 查看应用详情

pm2 startup, pm2 save 两条命令,用来保证服务器启动时,pm2管理的程序自动运行

通过 pm2 start xx.json 启动之后, 就可以直接使用 json 文件中的名称来对项目进行控制, 如 pm2 stop name;
如果修改了 json 文件, 就无法通过 restart 更新项目了, 必须要先 pm2 del name 然后再重新 pm2 start xx.json
# pm2 restart xxx

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

{
    "name": "my-server",
    "script": "/usr/java/jdk1.8.0_201/bin/java",
    "args": [
        "-jar",
        "server.jar"
    ],
    "exec_interpreter": "",
    "exec_mode": "fork"
}

多个jar包采用数组

[{   "name"   : "zdz-admin",
    "script" : "java",
    "args"   : "-jar -Xms256M -Xmx512M -DcfgPath=/web/conf/zdz-admin.conf /web/app/zdz-admin.jar",
    "exec_interpreter"  : "none",
    "exec_mode"        : "fork_mode"
},
{   "name"   : "zdz-api",
    "script" : "java",
    "args"   : "-jar -Xms1024M -Xmx2048M -DcfgPath=/web/conf/zdz-api.conf /web/app/zdz-api.jar",
    "exec_interpreter"  : "none",
    "exec_mode"        : "fork_mode"
}]

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

配置文件完成后,在json文件路径下使用下面命令:
pm2 start myapi.json
即可看到应用被启动

可以使用命令pm2 list查看当前node服务进程。

查看进程日志
pm2 log 0

查看进程详情
pm2 describe <id|app_name>

进程监控
pm2 monit

把pm2加入到开机启动中去,以便于pm2会随着服务器开机自启动,运行以下命令:
pm2 startup
pm2 save

使用pm2 show hello查看名称为“hello”的node进程详情。

使用说明请参考PM2项目github上的地址:https://github.com/Unitech/pm2。

------------
特别提醒:
1.通过 pm2 start xx.json 启动之后, 就可以直接使用 json 文件中的名称来对项目进行控制, 如 pm2 stop name;
2.每次重新打包之后, 使用 pm2 restart name 就可以更新项目;
3.如果修改了 json 文件, 就无法通过 restart 更新项目了, 必须要先 pm2 del name 然后再重新 pm2 start xx.json
{
"name": "zdz",
"script": "/usr/bin/java",
"args": [
"-jar",
"/home/zdzjar/zdz/target/zdz.jar",
"--spring.profiles.active=prod"
],
"exec_interpreter": "",
"exec_mode": "fork",
"error_file" : "/home/zdzjar/log/zdz-err.log",
"out_file" : "/home/zdzjar/log/zdz-out.log"
}

pm2 list  查看当前进程,pm2 startup pm2 save 开机自启动设置。

pm2好用的node进程管理工具,监控进程开机自启动,java进程配置,安装Nodejs环境

=================

安装Nodejs
1、到官网下载最新稳定版nodejs
如果你想下载其他版本,访问这里:https://nodejs.org/dist/。
2、解压安装
xz -d node-v8.10.0-linux-x64.tar.xz
tar -xvf node-v8.10.0-linux-x64.tar
mv node-v8.10.0-linux-x64 /usr/local/nodejs
如果xz没安装,是centos服务器则直接执行命令
yum install xz

3、设置环境变量
使用命令vim /etc/profile打开文件,在文件末尾加上以下两行,并保存。
export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH
保存好后,执行以下命令让配置立即生效:
source /etc/profile

4、验证
依次输入node -v和npm -v命令
可以看到node和npm的版本

5、安装cnpm镜像
npm命令安装依赖时会非常慢,使用淘宝镜像加速安装依赖,安装好后,就可以使用cnpm命令来安装常用的依赖。
npm install -g cnpm --registry=https://registry.npm.taobao.org

 ============