2025-03-29 14:35:49 +08:00

3.0 KiB
Executable File
Raw Blame History

pm 2

用于生产环境的 Nodejs 的进程管理工具 保证服务不会中断一直在线并且提供0秒reload功能还有其他一系列进程管理、监控功能 内置一个负载均衡

官方: PM2 - Quick Start

常见命令

启动

# 启动app.js应用
pm2 start app.js        

# 启动应用并设置name
pm2 start app.js --name 程序名

# 开发模式启动,即不启用后台运行
pm2-dev start ...

监视

监听模式启动,当文件发生变化,自动重启

# 指定程序名的情况下
pm2 start app.js --name 程序名 --watch
# 未指定程序名的情况下
pm2 start app.js --watch

进程

# 列出所有进程
pm2 list
# 简写
pm2 ls

# 从进程列表中删除进程
pm2 delete [appname] | id
# 指定进程名删除
pm2 delete app
# 指定进程id删除
pm2 delete 0
# 删除进程列表中所有进程(关闭并删除应用) 
pm2 delete all

# 查看某个进程具体情况
pm2 describe app

# 监控各个应用进程cpu和memory使用情况
pm2 monit

重启

# 同时杀死并重启所有进程,短时间内服务不可用,生成环境慎用
pm2 restart app.js
# 重启所有进程
pm2 restart all
# 重新启动所有进程0秒重启始终保持至少一个进程在运行
pm2 reload app.js
# 以群集模式重新加载所有应用程序
pm2 gracefulReload all

日志

# 根据指定应用名/应用ID查看应用日志
pm2 logs [Name|ID]
# 查看所有进程的日志
pm2 logs all

# 显示指定应用详情
pm2 show [Name|ID] 

# 清除日志
pm2 flush <app-name>

停止

pm2 stop [AppName|ID]

pm2 stop all

杀死所有进程

pm2 kill

静态服务器

# 将目录dist作为静态服务器根目录端口为8080
pm2 serve ./dist 8080

集群

# 启用群集模式(自动负载均衡)
# -i 表示 number-instances 实例数量
# max 表示 PM2将自动检测可用CPU的数量 可以自己指定数量
pm2 start app.js -i max

设置开机启动

# 可选项ubuntu, centos, redhat, gentoo, systemd, darwin, amazon
pm2 startup centos
# 按提示输入命令,最后保存
pm2 save
pm2 unstartup centos

pm2定时任务

pm2 start main.py --name mihoyo --interpreter=python3
pm2 logs mihoyo --lines 1000
pm2 flush appname
{
  "apps": [
    {
      "name": "ssr",
      "script": "main.py",
      "interpreter": "python3",
      "cron_restart": "0 23 * * *",
      "autorestart": false,
      "watch": false
    }
  ]
}

开机启动

# 保存当前状态
pm2 save
# 生成启动命令
pm2 startup
# 执行命令

# 取消开机启动
pm2 unstartup systemd

不自动重启

--no-autorestart

nodejs服务运行后结束

{
  "apps": [
    {
      "name": "189checkin",
      "script": "src/app.js",
      "cron_restart": "0 23 * * *",
      "autorestart": true,
      "max_restarts": 1
    }
  ]
}