安装node
安装
npm install -g pm2
查看安装路径
whereis pm2
查看
pm2 list
pm2 delete all
停止/删除
pm2 stop/delete 进程名称/进程id
重启进程
pm2 restart app // 重启指定名称的进程
pm2 restart all // 重启所有进程
启动方式
-
package.json 方式
若无package.json文件,使用npm init 创建 packsge.json文件
修改 scripts 里的 代码
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "serve build -l 3000"
},
启动:
pm2 start --name 进程名称
or
pm2 start 进程名称
- 直接命令行 启动
pm2 start "serve -s build" --name 进程名称
cd /项目目录下
pm2 start serve --name 进程名称
pm2 start --name 进程名称 npm -- run serve
- 启动node 入口文件
pm2 start app.js --name application1
// 在文件改变的时候会重新启动程序
pm2 start app.js --name application1 --watch
- 通过配置文件启动
命令生产 模版
pm2 init
pm2 ecosystem
会生成 ecosystem.config.js 文件
pm2 start ecosystem.config.js / pm2 start 启动即可
{
"apps": {
"name": "express_project", // 项目名
"script": "app.js", // 执行文件
"cwd": "./", // 根目录
"args": "", // 传递给脚本的参数
"interpreter": "", // 指定的脚本解释器
"interpreter_args": "", // 传递给解释器的参数
"watch": true, // 是否监听文件变动然后重启
"ignore_watch": [ // 不用监听的文件
"node_modules",
"public"
],
"exec_mode": "cluster_mode", // 应用启动模式,支持 fork 和 cluster 模式
"instances": "max", // 应用启动实例个数,仅在 cluster 模式有效 默认为 fork
"error_file": "./logs/app-err.log", // 错误日志文件
"out_file": "./logs/app-out.log", // 正常日志文件
"merge_logs": true, // 设置追加日志而不是新建日志
"log_date_format": "YYYY-MM-DD HH:mm:ss", // 指定日志文件的时间格式
"min_uptime": "60s", // 应用运行少于时间被认为是异常启动
"max_restarts": 30, // 最大异常重启次数
"autorestart": true, // 默认为 true, 发生异常的情况下自动重启
"restart_delay": "60" // 异常重启情况下,延时重启时间
"env": {
"NODE_ENV": "production", // 环境参数,当前指定为生产环境
"REMOTE_ADDR": ""
},
"env_dev": {
"NODE_ENV": "development", // 环境参数,当前指定为开发环境
"REMOTE_ADDR": ""
},
"env_test": { // 环境参数,当前指定为测试环境
"NODE_ENV": "test",
"REMOTE_ADDR": ""
}
}
}