linux pm2功能说明,PM2命令使用方法介绍

c5492d3455156cd3ced3294a87be82fd.png

PM2是具有内置负载平衡器的Node.js应用程序的生产过程管理器。 它使您可以永久保持应用程序的活动状态,无需停机即可重新加载应用程序,并且可以方便常见的系统管理任务

在生产模式下启动应用程序非常简单:

$ pm2 start app.js

官方网站:http://pm2.keymetrics.io/

翻译自:https://github.com/Unitech/pm2

适用于Linux(稳定)&MacOSx(稳定)&Windows(稳定)。 所有Node.js版本都支持 从Node.js 0.12开始。

安装

$ npm install pm2 -g

在安装Node.js时,npm是一个内建CLI

启动应用程序

$ pm2 start app.js

现在,您的应用程序已被守护程序,监控并保持永久生效。

官方的Docker Image

Docker Hub PM2镜像:

PM2官方Docker Image

使用pm2-docker CLI:

FROM keymetrics/pm2:latest [...] CMD [ "pm2-docker", "start", "ecosystem.config.js" ]

监视PM2和应用程序

要监视你的应用程序,只需输入 :

$ pm2 register

更新PM2

$ npm install pm2@latest -g #安装最新的PM2版本

$ pm2 update #保存进程列表,退出旧的PM2并恢复所有进程

主要特点

命令概述

#常规

$ npm install pm2 -g #安装PM2

$ pm2 start app.js #启动,守护进程和自动重启应用程序(Node)

$ pm2 start app.py #启动,守护进程和自动重启应用程序(Python)

$ pm2 start npm - start #启动,守护进程并自动重新启动节点应用程序

#集群模式(仅适用于Node.js)

$ pm2 start app.js -i 4 #在集群模式下启动4个应用程序实例,它会负载平衡网络查询到每个应用程序

$ pm2 reload all#零秒停机重新加载

$ pm2 scale [app-name] 10 #将群集应用程序扩展到10进程

#进程监视

$ pm2 list #列出所有以PM2开始的进程

$ pm2 monit #显示每个应用程序的内存和CPU使用情况

$ pm2 show [app-name] #显示应用程序的所有信息

#日志管理

$ pm2 logs #显示所有应用程序的日志

$ pm2 logs [app-name] #显示特定应用程序的日志

$ pm2 logs --json #以JSON格式记录

$ pm2 flush

$ pm2 reloadLogs

#进程状态管理

$ pm2 start app.js --name= " api " #启动应用程序并将其命名为“api”

$ pm2 start app.js - -a 34 #启动应用程序并传递选项“-a 34”作为参数

$ pm2 start app.js --watch #重新启动应用程序的文件更改

$ pm2 start script.sh #启动bash脚本

$ pm2 start app.json #启动在app.json中声明的所有应用程序

$ pm2 reset [app-name] #重置所有计数器

$ pm2 stop all #停止所有应用程序

$ pm2 stop 0 #停止ID为0的进程

$ pm2 restart all #重新启动所有应用程序

$ pm2 gracefulReload all #以集群模式轻松地重新加载所有应用程序

$$ pm2 delete all #杀死和删除所有的应用程序

$ pm2 delete 0 #删除ID为0的应用程序

#启动/引导管理

$ pm2 startup #检测init系统,在启动时生成并配置pm2启动

$ pm2 save #保存当前进程列表

$ pm2 resurrect #恢复以前保存的进程

$ pm2 unstartup #禁用并删除启动系统

$ pm2 update #保存进程,杀死PM2并恢复进程

$ pm2 generate #生成一个示例json配置文件

#部署

$ pm2 deploy app.json prod setup #安装程序“prod”远程服务器

$ pm2 deploy app.json prod #更新“prod”远程服务器

$ pm2 deploy app.json prod revert 2 #将 “prod”远程服务器还原为2

#模块系统

$ pm2 module:generate [name] #生成名称为[name]的样本模块

$ pm2 install pm2-logrotate #安装模块(这里是一个日志轮换系统)

$ pm2 uninstall pm2-logrotate #卸载模块

$ pm2 publish #增量版本,git push和npm发布

流程管理

一旦应用程序启动,您可以轻松地列出和管理它们:

6927946bb1b198d418d820dfaf615547.png

列出所有运行的进程:

$ pm2 list

管理您的流程非常简单:

$ pm2 stop

$ pm2 restart

$ pm2 delete

为了确保它重新评估在json_conf声明的环境变量,将它作为参数传递给它,如果有的话,也可以从你的json_conf选择你自定义的env名称:

$ pm2 restart [--env ]

要获得有关特定流程的更多详细信息:

$ pm2 describe

负载平衡和零秒停机重新加载

当使用-i 选项启动应用程序时,将启用集群模式 。

群集模式启动您的应用程序的实例,并在每个实例之间自动负载平衡HTTP / TCP / UDP。 这可以根据可用的CPU数量来提高整体性能。

由所有主要的Node.js框架和任何Node.js应用程序无缝支持,无需更改任何代码:

a50f84b0183cf5c07818f507a14ff03c.png

主要命令:

$ pm2 start app.js -i max #启用load-balancer并启动'max'实例(cpu nb)

$ pm2 reload all #零秒重新载入

$ pm2 scale #增加/减少进程号码

CPU /内存监视

8209cc89bc04c176fc10d12799fc4737.png

监测所有已启动的程序:

$ pm2 monit

日志

37f700e1f9ec59708a270fa1d964f1cf.png

实时显示指定进程或所有进程的日志。 标准,原始,JSON和格式化输出都可以。

$ pm2 logs ['all'|app_name|app_id] [--json] [--format] [--raw]

例子:

$ pm2 logs APP-NAME #显示APP-NAME日志

$ pm2 logs --json # JSON输出

$ pm2 logs --format #格式输出

$ pm2 flush #刷新所有日志

$ pm2 reloadLogs #重新加载所有日志

启动脚本生成

PM2可以生成并配置一个启动脚本,以便在每次服务器重新启动时保持PM2和您的进程活动。

支持init系统,如:systemd(Ubuntu 16,CentOS,Arch),upstart(Ubuntu 14/12),launchd(MacOSx,Darwin),rc.d(FreeBSD)。

$ pm2 startup #自动检测init系统+在服务器启动时生成并设置PM2启动

$ pm2 startup [platform] #手动指定启动系统,可以是:systemd,upstart,launchd,rcd

$ pm2 unstartup #在服务器启动时禁用并删除PM2引导

在重新启动时保存/冻结进程列表:

$ pm2 save

模块系统

PM2嵌入一个简单而强大的模块系统。 安装模块非常简单:

$ pm2 install < module_name >

以下是一些PM2兼容模块(由PM2管理的独立Node.js应用程序):

Keymetrics监测

5d3eff7a0c38920bd555ce6fe1496cd7.png

如果您使用PM2管理您的NodeJS应用程序,则Keymetrics可以轻松监控和管理跨服务器的应用程序。 随意尝试一下:

PM2的监控仪表板

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值