PM2是node进程管理工具,能够利用它来简化不少node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,并且使用很是简单。 node
$ npm install pm2 -g shell
# 启动app.js应用程序 npm
$ pm2 start app.js json
# cluster mode 模式启动4个app.js的应用实例, 4个应用程序会自动进行负载均衡 api
$ pm2 start app.js -i 4 数组
# 启动应用程序并命名为 "api" bash
$ pm2 start app.js --name="api" app
# 当文件变化时自动重启应用 负载均衡
$ pm2 start app.js --watch 工具
# 启动 bash 脚本
$ pm2 start script.sh
# 列表 PM2 启动的全部的应用程序
$ pm2 list
# 显示每一个应用程序的CPU和内存占用状况
$ pm2 monit
# 显示应用程序的全部信息
$ pm2 show [app-name]
# 显示全部应用程序的日志
$ pm2 logs
# 显示指定应用程序的日志
$ pm2 logs [app-name]
# 中止全部的应用程序
$ pm2 stop all
# 中止 id为 0的指定应用程序
$ pm2 stop 0
# 重启全部应用
$ pm2 restart all
# 重启 cluster mode下的全部应用
$ pm2 reload all
# Graceful reload all apps in cluster mode
$ pm2 gracefulReload all
# 关闭并删除全部应用
$ pm2 delete all
# 删除指定应用 id 0
$ pm2 delete 0
# 把名字叫api的应用扩展到10个实例
$ pm2 scale api 10
# 重置重启数量
$ pm2 reset [app-name]
#启动配置文件
$ pm2 start apps.json
范例文件:
{
"apps": [{
"name": "bob_test",
"cwd": "D:\\Practices\\Node\\PM2Demo",
"script": "app.js",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"error_file": "node-app.stderr.log",
"out_file": "node-app.stdout.log",
"pid_file": "node-geo-api.pid",
"instances": 6,
"min_uptime": "200s",
"max_restarts": 10,
"max_memory_restart": "1M",
"cron_restart": "1 0 * * *",
"watch": false,
"merge_logs": true,
"exec_interpreter": "node",
"exec_mode": "fork",
"autorestart": false,
"vizion": false
}]
}
说明: