pm2

node是单线程应用,单线程最大的弊端就是无法利用多核CPU带来的优势来提升运行效率。而pm2的有以下优势:

内建负载均衡(使用node cluster集群模块,可以使用服务器上的所有cpu)

后台运行(node app.js 这种命令是直接在前台运行的,不稳定)

0秒停机重载(上线升级时不需要停机)

停止不稳定的进程(避免无限循环)

控制台检测

pm2 安装

1、本地安装 

npm i pm2 -g

2、linux服务安装

见 linux下安装pm2 。


pm2常用命令

pm2启动的应用程序

1、程序启动

$ pm2 start app.js              # 启动app.js应用程序

$ pm2 start app.js -i 4         # cluster mode 模式启动4个app.js的应用实例     # 4个应用程序会自动进行负载均衡

$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"

$ pm2 start app.js --watch      # 当文件变化时自动重启应用

$ pm2 start script.sh           # 启动 bash 脚本

$ pm2 restart all               # 重启所有应用

$ pm2 resurrect                 # 重新加载保存的应用列表

$ pm2 reload all                # 重启 cluster mode下的所有应用

$ pm2 gracefulReload all        # 以群集模式重新加载所有应用程序

$ pm2 scale api 10              # 把名字叫api的应用扩展到10个实例

$ pm2 reset [app-name]          # 重置重启数量

$ pm2 startup                   # 创建开机自启动命令

2、显示信息

$ pm2 list                      # 列表 PM2 启动的所有的应用程序

$ pm2 monit                     # 显示每个应用程序的CPU和内存占用情况

$ pm2 show [app-name]           # 显示应用程序的所有信息

$ pm2 logs                      # 显示所有应用程序的日志

$ pm2 logs [app-name]           # 显示指定应用程序的日志

3、删除

$ pm2 flush                    # 清空所有日志文件

$ pm2 delete all                # 关闭并删除所有应用

$ pm2 delete 0                  # 删除指定应用 id 0

4、停止

$ pm2 stop all                  # 停止所有的应用程序

$ pm2 stop 0                    # 停止 id为 0的指定应用程序

5、保存更新

$ pm2 save                      # 保存当前应用列表

$ pm2 update                    # 保存进程,杀死PM2并恢复进程

$ pm2 generate                  # 生成示例json配置文件

$ pm2 deploy app.json prod setup       # 设置“prod”远程服务器

$ pm2 deploy app.json prod            # 更新“prod”远程服务器

$ pm2 deploy app.json prod revert 2            # 将“prod”远程服务器还原为2

$ pm2 module:generate [name]         # 生成名为[name]的示例模块

$ pm2 install pm2-logrotate         # 安装模块(这里是日志旋转系统)

$ pm2 uninstall pm2-logrotate         # 卸载模块

$ pm2 publish                   # 增量版本、git推送和npm发布

你可能感兴趣的:(pm2)