PM2使用说明
PM2工具是基于node 环境,所以想要使用PM2就得先安装node
安装并配置Node环境
-
下载对应系统的node版本 :Download | Node.js
-
配置软连接使得全局都可以使用npm
1、解压
tar -xvf node-v10.16.0-linux-x64.tar.xz
2、移动到全局可调用到的路径下面
mv ./node-v10.16.0-linux-64 /usr/local/nodejs
3、创建软链接
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/ ln -s /usr/local/nodejs/bin/node /usr/local/bin/
4、验证是否能够正常调用
node -v npm -v
安装配置PM2
1、安装PM2
npm install -g pm2
2、配置PM2
ln -s /usr/local/nodejs/bin/pm2 /usr/local/bin/
3、验证PM2是否正确安装
pm2 -v
4、开启PM2 Tab键自动补齐功能
pm2 completion install
source ~/.bash_profile
创建PM2启动脚本
nano app.json
简单配置:
{
"apps": [
{
"name": "eureka",
"script": "java",
"args":["-jar","financn_eureka.jar"],
"watch": true,
"cwd": "./pets-20210121"
},
{
"name": "gateway",
"script": "java",
"args":["-jar","gateway-0.0.1-SNAPSHOT.jar"],
"watch": true,
"cwd": "./pets-20210121"
}
]
}
- apps:json结构,apps是一个数组,每一个数组成员就是对应一个pm2中运行的应用
- name:应用程序的名称
- cwd:应用程序所在的目录
- script:应用程序的脚本路径
- exec_interpreter:应用程序的脚本类型,这里使用的shell,默认是nodejs
- min_uptime:最小运行时间,这里设置的是60s即如果应用程序在60s内退出,pm2会认为程序异常退出,此时触发重启max_restarts设置数量
- max_restarts:设置应用程序异常退出重启的次数,默认15次(从0开始计数)
- exec_mode:应用程序启动模式,这里设置的是cluster_mode(集群),默认是fork
- error_file:自定义应用程序的错误日志文件
- out_file:自定义应用程序日志文件
- pid_file:自定义应用程序的pid文件
- watch:是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。
PM2 程序运行日志的默认文件夹
cd ~/.pm2/logs
PM2常用命令
开启
pm2 start app.json
重启
pm2 restart app.js
停止(使用程序名或者程序id都行)
pm2 stop app_name|app_id|app_json (程序名|程序id|app.json文件名)
查看日志
pm2 logs app_name|app_id|app_json (程序名|程序id|app.json文件名)
重新加载json配置文件
pm2 reload app_json
PM2设置开机自启
1.设置开机自启,即在/etc/init.d/目录下生成pm2-root的启动脚本,且自动将pm2-root设为服务。
pm2 startup
非root用户
sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v14.3/bin pm2 startup <distribution> -u <user> --hp <home-path>
- 保存当前的应用列表,保存在/root/.pm2/dump.pm2下,当开机重启时,运行pm2-root服务脚本,并且到/root/.pm2/dump.pm2下读取应用并启动。
pm2 save