简介
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 模式 |