博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
npm系列:pm2文档简单翻译
阅读量:7154 次
发布时间:2019-06-29

本文共 4589 字,大约阅读时间需要 15 分钟。

今天实现了一个用node写了一个小网页放在服务器,为了解决关闭连接后退出node的执行,找了forrver和pm2,权衡之下,选择了pm2。npm上找到了其文档,简单翻译一下,留备后用。

奈何我作为一个英语四级都没有过的学渣,翻译水平实在有限,有疏漏不通之处,往大家谅解。(其实我就当做一个学习英语的方式了)

PM2是一个带有负载均衡功能的Node应用的进程管理器。它可以保持Node应用一直后台运行,在不停止的前提下更新,优化了系统任务管理。

启动进程管理十分简单:

$ pm2 start app.js

PM2经过了超过1000次的测试。

并且能够运行在linux&MacOSx&Windows等操作系统上。

pm2.png

Install PM2

$ npm install pm2 -g

当你安装了node之后,npm也会被安装--

NVM是一个Nodejs的版本控制器。

启动一个应用

$ npm install pm2 -g

你的程序现在是一个受监控的后台进程,并且会一直运行下去。

Update PM2

# Install latest pm2 version$ npm install pm2 -g# Save process list, exit old PM2 & restore all processes$ pm2 update

PM2更新是无缝的

主要特点

命令概述

# General$ npm install pm2 -g           # 安装 PM2$ pm2 start app.js             #启动, Daemonize and auto-restart application (Node)$ pm2 start app.py             # 启动, Daemonize and auto-restart application (Python)$ pm2 start npm -- start       # 启动, Daemonize and auto-restart Node application # Cluster Mode (Node.js only)$ pm2 start app.js -i 4         # 启动四个应用程序实例                               # 会给每个网络装载网络均衡器$ pm2 reload all               # 立即重启所有工作进程$ pm2 scale [app-name] 10       # 使用10个工作进程 # Process Monitoring$ pm2 list                     # 列出所有PM2启动的进程$ pm2 monit                     # 列出每个程序的详细情况和CPU使用情况$ pm2 show [app-name]           # 列出程序的所有信息 # Log management$ pm2 logs                     # 列出应用的日志$ pm2 logs [app-name]           # 列出某个app的日志$ pm2 logs --json               # 使用json格式列出日志$ pm2 flush$ pm2 reloadLogs # Process State Management$ pm2 start app.js --name="api" # 启动应用,并且命名‘api’$ pm2 start app.js -- -a 34     # Start app and pass option "-a 34" as argument$ pm2 start app.js --watch     # 当文件改变的时候重新启动应用$ pm2 start script.sh           # 启动bash脚本$ pm2 start app.json           # 启动所有app.json中声明的程序$ pm2 reset [app-name]         # Reset all counters$ pm2 stop all                 # 停止所有应用$ pm2 stop 0                   # 停止id为0的进程$ pm2 restart all               # 重启所有应用$ pm2 gracefulReload all       # Graceful reload all apps in cluster mode$ pm2 delete all               # 关闭并删除所有应用$ pm2 delete 0                 # 删除id为0的程序 # Startup/Boot management$ pm2 startup                   # Detect init system, generate and configure pm2 boot on startup$ pm2 save                     # Save current process list$ pm2 resurrect                 # Restore previously save processes$ pm2 unstartup                 # Disable and remove startup system $ pm2 update                   # Save processes, kill PM2 and restore processes$ pm2 generate                 # Generate a sample json configuration file # Deployment$ pm2 deploy app.json prod setup   # Setup "prod" remote server$ pm2 deploy app.json prod         # Update "prod" remote server$ pm2 deploy app.json prod revert 2 # Revert "prod" remote server by 2 # Module system$ pm2 module:generate [name]   # Generate sample module with name [name]$ pm2 install pm2-logrotate     # 安装模块 (here a log rotation system)$ pm2 uninstall pm2-logrotate   # 卸载模块$ pm2 publish                   # 版本发布, git推送和npm发布

进程管理器

一点进程启动,你可以查看列表并且轻松的管理:

pm2-list.png

监听所有运行的进程

$ pm2 list

管理进程很简洁:

$ pm2 stop     
$ pm2 restart
$ pm2 delete

查看更多的进程信息:

$ pm2 describe 

负载平衡和立即重载

当启动应用的时候使用 -i <instance_number>选项,集群模式将会启用。集群模式将会instance_number然后自动加载 HTTP/TCP/UDP 的均衡器。可以根据CPU可获得数目在增加性能。

PM2支持所有的Nodejs框架,并且任何Node.js程序不用修改任何代码即能运行

cluster-support.png

主要命令:

$ pm2 start app.js -i max # Enable load-balancer and start 'max' instances (cpu nb)$ pm2 reload all           # Zero second dowtime reload$ pm2 scale 
# Increase / Decrease process number

CPU/内存监控

pm2-monit.png

监视所有进程:

$ pm2 monit

日志工具

pm2-logs.png

即时地展示详细的进程日志。有 Standard, Raw, JSON和formated

输出可以使用:

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

例子:

$ pm2 logs APP-NAME       # Display APP-NAME logs$ pm2 logs --json         # JSON output$ pm2 logs --format       # Formated output $ pm2 flush               # Flush all logs$ pm2 reloadLogs         # Reload all logs

配置启动脚本

PM2可以配置启动脚本,在每一次系统重启的时候,保持PM2和进程的运行。

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

# Auto detect init system + generate and setup PM2 boot at server startup$ pm2 startup# Manually specify the startup system# Can be: systemd, upstart, launchd, rcd$ pm2 startup [platform] # Disable and remove PM2 boot at server startup$ pm2 unstartup

再重启的时候,保存进程列表:

pm2 save

模块系统

PM2内置了一个简单却强大的模块系统,安装模块十分简单:

$ pm2 install 

这里有一些兼容的模块,能够通过PM2管理Nodejs库:

自动记录PM2和程序的管理日志
提供一个终端
监控系统运行

Keymetrics monitoring

application-demo.png

如果你使用PM2管理Nodejs应用,Keymetrics会使你管理简单,并且可以是跨服务器。

十分感谢,希望您能喜欢PM2

More about PM2

CHANGELOG

Contributors

注:

翻译水平较低,而且使用的并不深入。随着以后理解的加深,再逐渐修改翻译文档。

转载地址:http://jkrgl.baihongyu.com/

你可能感兴趣的文章
wordpress插件之All in One SEO Pack:整体优化你的wordpress博客
查看>>
编译安装PHP出现configure: error: mysql configure failed. Please check config.log的解决方法...
查看>>
用win7虚拟无线路由上网
查看>>
J2EEweb开发乱码问题
查看>>
十分钟搞定SUSE Linux Enterprise Server 11 SP3上搭建ceph集群
查看>>
Tomcat远程调试
查看>>
20180523早课记录16-Linux&Hadoop
查看>>
Python的对象协议
查看>>
免费图标素材:47套最新的超棒免费图标集
查看>>
mysql 8.0降序索引
查看>>
华为防火墙6000web界面配置
查看>>
【安全牛学习笔记】手动漏洞挖掘-SQL盲注
查看>>
聊聊jdk http的HeaderFilter
查看>>
H3 BPM前后台交互方法介绍
查看>>
企业级自动化运维工具应用实战-ansible
查看>>
web前端小白案例-鼠标移入移出效果
查看>>
装饰模式
查看>>
思科OSPF多进程重分发小实验
查看>>
关于phpredis安装的一点坑
查看>>
java知识之方法的练习及注意事项
查看>>