学而实习之 不亦乐乎

PM2 进程管理工具用法

2024-03-08 21:28:24

一、PM2 概述

PM2 是一个流行的 Node.js 进程管理工具,它可以用来启动、停止和监控 Node.js 应用程序,还能够进行进程重启和负载均衡等操作。同时,PM2 还提供了方便的日志管理功能,可以帮助我们更好地了解和调试应用程序的运行情况。

二、PM2 使用

1、启动项目

$ pm2 start <script_file|config_file> [options] 启动指定应用,如:pm2 start index.js --name httpServer;

这里需要注意的是,如果已指定服务名称,可以直接 pm2 start <appName>,否则需要在项目目录里指定名称并执行 pm2 start <script_file|config_file> --name <appName>.

如果项目支持 npm 命令,可以pm2 start npm --name <appName> -- run start

2、其他命令

$ pm2 start app.js -i 4 # 后台运行pm2,启动4个app.js。也可以把'max' 参数传递给 start(正确的进程数目依赖于Cpu的核心数目)
$ pm2 start app.js -i max           # 根据有效CPU数目启动最大进程数目
$ pm2 start app.js --name my-api    # 命名进程
$ pm2 list # 显示所有进程状态,pm2 stop 某个项目后,该项目还会存在pm2 list 的列表里面, 只是状态是 stop, 要想去掉该项目,用 pm2 delete
$ pm2 monit                         # 监视所有进程
$ pm2 logs                          # 显示所有进程日志
$ pm2 logs <appName>                # 如果要查询指定项目的日志
$ pm2 stop all                      # 停止所有进程
$ pm2 stop <appName> [options]      # 停止指定的进程
$ pm2 restart all                   # 重启所有进程
$ pm2 reload all                    # 0 秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 restart [project id]          # 重启指定的进程
$ pm2 reload|restart <appName> [options] 重启指定应用,如pm2 restart httpServer
$ pm2 startup                       # 产生 init 脚本 保持进程活着
$ pm2 web                           # 运行健壮的 computer API endpoint (http://localhost:9615)
$ pm2 show <appName> [options]      # 显示指定应用详情,如pm2 show httpServer
$ pm2 delete 0                      # 杀死指定的进程
$ pm2 delete all                    # 杀死全部进程
$ pm2 delete <appName> [options] # 删除指定应用,如pm2 delete httpServer,如果修改应用配置行为,最好先删除应用后,重新启动方才生效,如修改脚本入口文件
$ pm2 info app                      # 参看name为app的信息
$ pm2 kill                          # 杀掉pm2管理的所有进程
$ pm2 startOrReload <appName>       # 如果项目没有启动就执行 strt 如果项目正在运行 就执行relaod