PM2是node进程管理工具,一般用来在服务器端启动以及监测Node.js服务,我的个人博客项目就是用pm2启动的。
安装
安装很简单
npm install pm2 -g
安装之后就可以在项目目录下执行命令启动服务
pm2 start app.js
相当于开发环境中node app.js
一些常用基本命令
停止所有服务
pm2 stop all
查看所有服务
pm2 list
查看服务进程状态
pm2 status
还有几个会在下面代码中使用
配置文件
- pm2配置文件可以选择yml和json两种文件,看个人喜好。
- json格式的配置文件,pm2当作普通的js文件来处理,所以可以在里面添加注释或者编写代码。
- 如果启动的时候指定了配置文件,那么命令行参数会被忽略。(个别参数除外,比如--env)
上一份最基础的配置文件,混混眼熟
pm2.yml
apps:
- script: ./app.js #程序启动文件
name: myblog #启动服务名(自定义)
env_production: #生产环境
NODE_ENV: production
pm2.json(这里写了两个服务)
{
"apps": [
{
// Application #1
"name": "myblog",
"script": "./app.js",
"env_production": {
"NODE_ENV": "production"
}
},
{
// Application #2
"name": "api-app",
"script": "api.js",
"instances": 4,
"exec_mode": "cluster_mode",
"error_file": "./examples/child-err.log",
"out_file": "./examples/child-out.log",
"pid_file": "./examples/child.pid"
}
]
}
启动服务命令
pm2 start pm2.yml --env production
如果是json文件将pm2.yml替换即可,--env production意思是根据配置文件中的env_production设置环境变量。
因为在配置文件中写了服务name,那命令也可以直接用name
停止myblog服务
pm2 stop myblog
重启myblog服务
pm2 restart myblog
一般上线项目都会监测日志,但pm2也可以查看日志
查看myblog程序中的打印日志
pm2 log myblog
查看myblog服务进程信息
pm2 describe myblog
更详细的配置文件可以看看下面的几个引用地址