zoukankan      html  css  js  c++  java
  • pm2中文文档

                                                                                                 


    PM2是Node.js应用程序的生产流程管理器,内置负载均衡。它可以帮助您保持Node应用程序永久活动,重起这些node应用程序也不需要停机,并简化常见的系统管理任务。

    PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.

    在生产模式下启动应用程序非常简单
    $ pm2 start app.js

     

    安装 PM2

    $ npm install pm2 -g

    npm is a builtin CLI when you install Node.js - Installing Node.js with NVM

     

    启动一个应用程序

    $ pm2 start app.js

    Your app is now daemonized, monitored and kept alive forever.

    More about Process Management

     

    更新 PM2

    # 安装最新的pm2
    $ npm install pm2 -g
    # Save process list, exit old PM2 & restore all processes
    $ pm2 update

    PM2 updates are seamless

     

    主要功能

    常用命令一览

    # 普通General
    $ npm install pm2 -g            # 安装 PM2
    $ pm2 start app.js              # 启动,守护进程,自动重启应用程序 Start, Daemonize and auto-restart application (Node)
    $ pm2 start app.py              # 启动,守护进程,自动重启python应用程序 Start, Daemonize and auto-restart application (Python)
    $ pm2 start npm -- start        # 启动,守护进程,自动重启node应用程序 Start, Daemonize and auto-restart Node application
    
    # 集群模式 (只支持node进程) Cluster Mode (Node.js only)
    $ pm2 start app.js -i 4         # 在集群模式下,启动4个应用程序实例  Start 4 instances of application in cluster mode
                                    # 同时,将网络请求,负载均衡到每个应用实例  it will load balance network queries to each app
    $ pm2 reload all                # 0秒重启所有应用 Zero Second Downtime Reload
    $ pm2 scale [app-name] 10       # 将应用进程调整到10 Scale Cluster app to 10 process
    
    # 进程监控 Scale Cluster app to 10 process
    $ pm2 list                      # 列出所有用PM2启动的进程 List all processes started with PM2
    $ pm2 monit                     # 显示每个应用占用的cpu和内存 Display memory and cpu usage of each app
    $ pm2 show [app-name]           # 显示某个进程的所有信息 Show all informations about application
    
    # 日志管理 Log management
    $ pm2 logs                      # 显示所有应用的日志  Display logs of all apps
    $ pm2 logs [app-name]           # 显示某个应用的日志 Display logs for a specific app
    $ pm2 logs --json               # json化日志 Logs in JSON format
    $ pm2 flush
    $ pm2 reloadLogs
    
    # 进程状态管理 Process State Management
    $ pm2 start app.js --name="api" # 启动一个应用并命名为api。 Start application and name it "api"
    $ pm2 start app.js -- -a 34     # 启动一个应用,并传递“-a 34”的参数。 Start app and pass option "-a 34" as argument
    $ pm2 start app.js --watch      # 重启一个应用,当文件改变的时候。Restart application on file change
    $ pm2 start script.sh           # 启动一个bash脚本。Start bash script
    $ pm2 start app.json            # 启动在app.json中声明的所有应用。Start all applications declared in app.json
    $ pm2 reset [app-name]          # 重置所有计数器。Reset all counters
    $ pm2 stop all                  # 停止所有应用。Stop all apps
    $ pm2 stop 0                    # 停止id 为0的应用。Stop process with id 0
    $ pm2 restart all               # 重启所有应用。Restart all apps
    $ pm2 gracefulReload all        # 在集群模式下,平稳的重加载所有应用。Graceful reload all apps in cluster mode
    $ pm2 delete all                # 杀掉所有应用。Kill and delete all apps
    $ pm2 delete 0                  # 杀掉id为0的进程。Delete app with id 0
    
    # 启动/引导管理 Startup/Boot management
    $ pm2 startup                   # 检测init系统,在启动时生成和配置pm2。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                    # 保存进程,终止PM2并恢复进程。Save processes, kill PM2 and restore processes
    $ pm2 generate                  # 生成样本json配置文件。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 # 将“生产环境”远程服务器恢复2。Revert "prod" remote server by 2
    
    # 模块系统 Module system
    $ pm2 module:generate [name]    # 生成名称为[name]的示例模块。Generate sample module with name [name]
    $ pm2 install pm2-logrotate     # 安装模块(这里是日志循环系统)。Install module (here a log rotation system)
    $ pm2 uninstall pm2-logrotate   # 卸载模块。Uninstall module
    $ pm2 publish                   # 增量版本,git push和npm发布。Increment version, git push and npm publish

     

    进程管理

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

    pm2-list.png

     

    列出正在运行的应用程序

    $ pm2 list

    很简单的管理你的应用进程

    $ pm2 stop     <app_name|id|'all'|json_conf>
    $ pm2 restart  <app_name|id|'all'|json_conf>
    $ pm2 delete   <app_name|id|'all'|json_conf>

    要确保它在json_conf使用中重新评估环境变量 To make sure it re-evaluates enviroment variables in your json_conf use

    $ pm2 restart <json_conf>

    要了解特定流程的更多详细信息

    $ pm2 describe <id|app_name>

     

    More about Process Management

    Load Balancing & Zero second Downtime Reload

    When an application is started with the -i option, the Cluster Mode is enabled.

    The Cluster Mode start and automatically load balance HTTP/TCP/UDP between each instance. This allows to increase overall performance depending to the number of CPUs availabe.

    Seamlessly supported by all major Node.js frameworks and any Node.js applications without any code change:

    cluster-support.png

     

    Main commands:

    主要命令:

    $ pm2 start app.js -i max  # 启用负载平衡,启动'max'实例(cpu nb)。Enable load-balancer and start 'max' instances (cpu nb)
    
    $ pm2 reload all           # 0秒重启。Zero second dowtime reload
    
    $ pm2 scale <app_name> <instance_number> # 增加/减少进程号。Increase / Decrease process number

    More informations about how PM2 make clustering easy

     

    CPU/内存 监控

    pm2-monit.png

     

    监控所有启动的进程:Monitoring all processes launched:

    $ pm2 monit

     

    日志设施  Log facilities

    pm2-logs.png

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

    $ 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

    More about log management

     

    生成启动脚本 Startup script generation

    PM2可以生成和配置启动脚本,以在每次服务器重新启动时保持PM2和您的进程活动。
    支持init系统,如:systemd(Ubuntu 16,CentOS,Arch),upstart(Ubuntu 14/12),launchd(MacOSx,Darwin),rc.d(FreeBSD)。
    # 自动检测init系统+在服务器启动时生成和设置PM2引导。 Auto detect init system + generate and setup PM2 boot at server startup
    $ pm2 startup
    
    # 手动指定启动系统. Manually specify the startup system
    # 可以是:systemd,upstart,launchd,rcd。
    $ pm2 startup [platform]
    
    # 在服务器启动时禁用和删除PM2引导。Disable and remove PM2 boot at server startup
    $ pm2 unstartup

     

    在重新启动时保存/冻结进程列表:To save/freeze a process list on reboot:

    $ pm2 save

     

    More about startup scripts

    模块系统 Module system

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

    $ pm2 install <module_name>

    下面是一些PM2兼容模块(由PM2管理的独立Node.js应用程序):Here are some PM2 compatible modules (standalone Node.js applications managed by PM2):

    pm2-logrotate 自动轮换PM2的日志和管理的应用程序 (auto rotate logs of PM2 and applications managed)

    pm2-webshell 在浏览器中展示一个功能完备的终端(expose a fully capable terminal in browsers)
    pm2-server-monit 监视您的服务器运行状况(monitor your server health)

    Writing your own module 

     

    关键指标监控 Keymetrics monitoring

    68747470733a2f2f6b65796d6574726963732e696f2f6173736574732f696d616765732f6170706c69636174696f6e2d64656d6f2e706e67

     

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

    Discover the monitoring dashboard for PM2

    感谢,我们希望你喜欢PM2!

     

     

    translate by 青菜叶子(zhentaoo)

     

  • 相关阅读:
    开发中常用js记录(二)
    c# 我所理解的 值类型 and 引用类型
    c# 枚举
    ModelState.IsValid总为false原因
    学习总结 之 WebApi服务监控 log4net记录监控日志
    How to Deinstall Oracle Clusterware Home Manually
    oracle client 低于 oracle server 端,导致报错ORA-01882
    转 zabbix 用户建立和中文化
    转 rman 恢复报错
    10g 升级到11g 失效对象2则
  • 原文地址:https://www.cnblogs.com/zhentaoo/p/6421977.html
Copyright © 2011-2022 走看看