admin管理员组文章数量:1533093
2024年6月25日发(作者:)
pm2带负载均衡功能的Node应用进程管理工具
pm2 介绍
pm2是nodejs应用程序的进程管理工具,内置负载均衡。其可以帮助您保持
node应用程序的永久活动,无需停机皆可重新加载node应用程序。
pm2的主要特性
1.
2.
3.
4.
5.
6.
7.
内建负载均衡(使用了Node cluster 集群模块)
后台运行
0秒停机重载(我的理解: 在维护升级node应用程序时不需要停机)
停止不稳定的进程(避免无限循环)
提供 HTTP API
远程控制和实时接口API(Nodejs模块,允许和pm2交互)
控制台检测
安装(全局)
npm install -g pm2
常用命令一览
## 普通 ## npm install -g pm2 # 安装pm2 pm2 start # 启动&守护进程,自
动重启Node应用程序 pm2 start # 启动&守护进程,自动重启python应用
程序 pm2 start # 启动&守护进程,自动重启bash脚本 pm2 start
# 启动&守护中声明的所有应用 ## 集群模式(只支持node进程) #
# pm2 start -i 4 # 启动4个应用程序实例,并将网络请求负载均衡到每个应
用中。 pm2 start -i max # 根据有效cpu数启动最大的进程数 pm2 start app.
js -x # 用fork模式启动而非cluster pm2 start -e -o # 启动应
用程序并分别指定标准输出日志文件和错误日志文件 pm2 reload all # 0秒重启所
有应用 pm2 scale [app-name] 10 # 将应用程序调整到10个实例 ## 进程监控 #
# pm2 list # 列出所有由pm2启动的进程 pm2 monit # 显示每个应用占用的cpu
和内存 pm2 show [app-name] # 显示一些进程的所有信息 ## 日志管理 ## pm2 l
ogs # 显示所有应用的日志 pm2 logs [app-name] # 显示一些应用的日志 pm2 logs
--json # json化日志 pm2 flush # 清除日志 pm2 reloadLogs #重载日志 ## 进程
状态管理 ## pm2 start --name="api" # 启动应用并命名为api pm2 start app.
js -- -a 34 # 启动应用,并传递参数“-a 34”(在--之后给传递参数) pm2 star
t --watch # 启动应用,并设置当文件改变时会重启应用 pm2 start #
启动&守护进程,自动重启python应用程序 pm2 start # 启动&守护进程,
自动重启bash脚本 pm2 start # 启动&守护中声明的所有应用 p
m2 reset [app-name] # 重置应用的重启数量 pm2 stop all # 停止所有应用 pm2 sto
p 0 # 停止id为0的应用 pm2 restart all # 重启所有应用 pm2 gracefulReload all
# 在集群模式下,平稳的重新加载所有应用 pm2 delete all # 杀掉所有应用 pm2 de
lete 0 # 杀掉id为0的进程 ## 重启/引导管理 ## pm2 startup # 自动检测init
系统 + 在服务器启动时生成和配置pm2引导 pm2 startup [platform] # 手动指定启
动系统,可以是:systemd、upstart、launchd、rcd。 pm2 unstartup # 在服务器启
动时禁用和删除pm2引导 pm2 save # 保存当前进程列表 pm2 resurrect # 恢复以
前保存的进程 pm2 unstartup # 停用和删除启动系统 pm2 update # 保存进程,终
止pm2并恢复进程 pm2 generate # 生成样本json配置文件 ## 部署 ## pm2 dep
loy prod setup # 设置“生产环境”远程服务器 pm2 deploy prod #
更新“生产环境”远程服务器 pm2 deploy prod revert # 将“生产环境”远程
服务器恢复 ## 模块系统 ## pm2 module:generate [name] # 生成名为name的示
例模块 pm2 install pm2-logrotate # 安装模块(这里是日志循环模块) pm2 uninst
all pm2-logrotate # 卸载模块(这里是日志循环模块) pm2 publish # 增量邦本,
git push和npm发布
命令详解
## 进程管理 ## pm2 list # 列出所有正在运行的由pm2启动的应用程序 pm2 stop
文件内声明的应用) pm2 restart
用程序 pm2 delete
2 describe
志 ## # 实时显示指定进程or所有进程的日志,并提供标准、原始、JSON和格式
化输出 pm2 logs [ "all" , app-name , app-id ] [--json] [--format] [--raw]
特别说明
1.
生成启动脚本
pm2可以生成和配置启动脚本,以方便在每次服务器重启时保持pm2和您进程的
活动。 支持init系统,如下:
•
•
•
•
systemd(Ubuntu 16 , CentOS, Arch)
upstart( Ubuntu 14/12)
launchd( MacOSx, Darwin)
rcd( FreeBSD)
2.
模块系统
pm2嵌入了一个简单而强大的模块系统,安装模块很简单
pm2 install
下面是一些pm2兼容模块:
•
•
pm2-logrotate # 自动轮换pm2的日志和管理的应用程序
pm2-webshell # 在浏览器中展示一个功能完备的终端
• pm2-server-monit # 监控您的服务器运行状态
可以通过配置一个pm2启动文件,统一管理多个应用程序。
PS: 若想使用pm2启动监控python进程,推荐通过sh脚本文件来启动
python文件
# 文件内容 # python ./web_
说明:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
apps: json结构,apps是一个数组,每一个数组成员就是对应一个pm2中
运行的应用
name:应用程序名称
cwd:应用程序所在的目录
script:应用程序的脚本路径
log_date_format: 指定日志日期格式
error_file:自定义应用程序的错误日志文件
out_file:自定义应用程序日志文件
pid_file:自定义应用程序的pid文件
env: objects对象,可设置pm2的编码格式等
– PYTHONIOENCODING:字符串,编码,如: "utf-8"
instances: 实例(进程)个数
max_restarts:设置应用程序异常退出重启的次数,默认15次(从0开始计
数)
max_memory_restart : 最大内存限制,超出内存限制会自动重启
cron_restart:定时启动,解决重启能解决的问题
watch:是否启用监控模式,默认是false。如果设置成true,当应用程序变
动时,pm2会自动重载。这里也可以设置你要监控的文件。
merge_logs: 合并日志
exec_interpreter:应用程序的脚本类型,这里使用的shell,默认是nodejs
exec_mode:应用程序启动模式,这里设置的是cluster_mode(集群),默认
是fork
autorestart:启用/禁用应用程序崩溃或退出时自动重启
vizion:启用/禁用vizion特性(版本控制)
配置好后,可以通过以下命令行启动应用:
pm2 start
pm2设置开机自启动
Linux
1. 运行 pm2 startup,检测init系统,并生成启动脚本(若有提示需要执行命
令,请直接照搬执行。)
2. 运行 pm2 save,会将当前pm2所运行的应用保存在/[用户路
径]/root/.pm2/2下,当开机重启时,运行pm2自启动服务脚本,
并且到/root/.pm2/2下读取应用并启动。
Window
1. 安装并配置 pm2-windows-service pm2-windows-service可以将 pm2 安装
成 windows service, 达到开机运行的目的。
npm i -g pm2-windows-service
PS: 将pm2安装为 windows service,会导致只能以管理员身份运行pm2
命令,普通用户运行pm2命令会报如下错误:
图片.png
2. 添加pm2环境变量 添加系统环境变量 PM2_HOME=D:.pm2 右键 [我的电脑]
- [属性] - [高级系统设置] - [环境变量] - 新建 [系统变量] 名称PM2_HOME 路
径D:.pm2(.pm2路径一般为:c:Users
为准)
3. 安装服务
# 以管理员权限打开新的命令行窗口,执行以下命令来安装服务 pm2-service-instal
l # 拓展:卸载服务 pm2-service-uninstall
Perform environment setup ? 选 n, 继续 此时, PM2服务已安装成功并已启动, 可以
通过 Wn+R来查看,输入即可看到服务
图片.png
4. 添加到自启动服务 pm2 save很重要, 它保存当前pm2 正在管理的NodeJS
服务, 并在开机后恢复这些服务。
pm2 save
版权声明:本文标题:pm2带负载均衡功能的Node应用进程管理工具 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1719294173a769307.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论