简介
PM2是一个守护进程管理工具,帮助您管理和守护您的应用程序。它以简单直观的 CLI 命令行方式进行工作。
下载安装
最新的 PM2 版本可以使用 NPM 或 Yarn 安装:
1 | # npm |
建议使用
npm安装,如果没有请自行百度安装。
输入pm2 -V打印PM2版本。

快速使用
首先,使用Flask构建一个简单的应用,代码如下所示:
1 | from flask import Flask |
普通启动
1 | python app.py |

应用启动完成。
使用PM2命令启动项目
1 | pm2 start python app.py |
开启前,请先停止上方普通启动的程序。

查看网页是否可以开启。

测试成功。
使用PM2配置文件启动项目
使用 PM2 管理多个应用程序时,使用一个 JS 配置文件来组织它们。
首先,停止前面使用
PM2开启的项目。
1
2 pm2 stop app
pm2 stop python
停止完成。
首先使用以下命令,可以生成一个PM2示例配置文件。
1 | pm2 init simple |

接下来修改应名称、脚本和解释器的绝对路径。
1 | module.exports = { |
启动项目。
1 | pm2 start ecosystem.config.js |

验证网页是否成功开启。

成功启动。
与操作应用程序相比,您可以无缝启动/停止/重启/删除配置文件中包含的所有应用程序:
例如,我们将
app.py文件重新拷贝一份为app1.py文件,并将app1.py应用的端口修改为2324,输出的文本内容修改为PM2测试页面2222,然后在配置文件中同时启动这两个应用。具体如下所示:
1
2
3
4
5
6
7
8
9
10
11
12 from flask import Flask
app = Flask(__name__)
def hello_world():
return "PM2测试页面2222"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=2324)接着修改
PM2配置文件,将app1加到配置文件中。
1
2
3
4
5
6
7
8
9
10
11
12 module.exports = {
apps : [{
name : "test_web",
script : "app.py",
interpreter : "D:/ProgramSoftware/Python/Miniconda3/python.exe"
},
{
name : "test_web2",
script : "app1.py",
interpreter : "D:/ProgramSoftware/Python/Miniconda3/python.exe"
}]
}首先删除前面,使用配置文件已经生成的应用。
1 pm2 delete ecosystem.config.js
接着再次启动
PM2。
1 pm2 start ecosystem.config.js此时会同时启动
test_web和test_web2项目。
查看测试页面。
test_web
test_web2
启动完成。
管理应用
进程检查
列出应用程序
1 | pm2 ls/status/list |
此处
ls、status和list三个命令的效果相同。

查看日志
1 | pm2 log |

当日志数过多时,也可以指定查看的日志行数。
例如,查看最新的
200行日志。
1 pm2 logs --lines 200清空所有日志文件
1 pm2 flush重新加载所有日志
1 pm2 reloadLogs
查看监控信息
查看每个应用的实时监控信息(但是无法查看历史监控信息)
1 | pm2 monit |

监控和诊断Web界面
基于 Web 的仪表板,带有诊断系统的跨服务器。
1 | pm2 plus |

ecosystem配置文件
基本使用
在使用配置文件管理应用时,除了可以前面使用到的批量启动应用之外,还有以下命令可以使用。
1 | # 启动配置文件中的所有项目 |
还可以使用其名称和选项对特定应用程序进行操作--only <app_name>:
1 | pm2 stop ecosystem.config.js --only tset_web |
该
--only选项也适用于启动/重启/停止/删除。
甚至可以通过指定用逗号分隔每个应用程序名称,来指定要对其执行操作的多个应用程序:
1 | pm2 start ecosystem.config.js --only "test_web,test_web2" |
更多使用参数请见官网进行配置。
环境变量
您可以通过该env_*选项指定不同的环境变量。
1 | module.exports = { |
现在要在不同环境中的变量之间切换,请指定--env [env name]选项:
1 | pm2 start ecosystem.config.js --env production |
开启启动
启动
1 | pm2 startup |
禁止开机启动
1 pm2 unstartup
保存
1 | pm2 save |
应用监听
--watch选项很简单:
1 | pm2 start env.js --watch --ignore-watch="node_modules" |
这将在当前目录 + 所有子文件夹中的任何文件更改时监视并重新启动应用程序,并且它将忽略 node_modules 文件夹中的任何更改--ignore-watch="node_modules"。
然后,您可以使用pm2 logs来检查重新启动的应用程序日志。
更新PM2
全局安装新最版本的PM2:
1 | npm install pm2@latest -g |
然后更新内存中的 PM2 :
1 | pm2 update |
命令列表
1 | # Fork 模式 |




