• pm2模块编写入门


    PM2 模块

    PM2模块是通过PM2来安装和管理,代码可以托管在NPM中。任何人都可以创建和发布一个PM2模块,可以是日志模块、http代理模块、负载均衡模块、DNS服务器模块或任何类型的实用程序。

    管理模块

    管理PM2模块是非常简单的:

    # Install
    $ pm2 install <module-name>
    
    # Update a module
    $ pm2 install <module-name>
    
    # Install a module from GitHub (username/repository)
    $ pm2 install pm2-hive/pm2-docker
    
    # Force module restart
    $ pm2 restart <module-name>
    
    # Get more informations
    $ pm2 describe <module-name>
    
    # Install a module in dev mode from local folder
    $ pm2 install .
    
    # Generate a module boilerplate
    $ pm2 module:generate <module-name>
    
    # Uninstall module
    $ pm2 uninstall <module-name>
    
    # Publish new module (Inc Semver + Git push + NPM publish)
    $ pm2 publish
    

    创建PM2模块

    通过PM2脚手架来引导创建模块

    $ pm2 module:generate <module-name>
    

    通过PM2来运行

    $ cd <module-name>
    $ pm2 install .
    

    当你修改该模块源码时,PM2会自动重启该模块。
    显示模块的日志信息:

    $ pm2 logs <module-name>
    

    删除已安装的PM2模块

    $ pm2 uninstall <module-name>
    

    Package.json 语法糖

    关于模块的信息可以添加到package.json文件中。
    你可以在config字段中定义你的配置:
    Example:

    {
      "name": "pm2-logrotate",
      "version": "1.0.0",       
      "description": "my desc",
      "dependencies": {
        "pmx": "latest"
      },
      "config": {               
         "days_interval" : 7,  
         "max_size" : 5242880
      },
      "apps" : [{              // 模块运行配置项
        "script"             : "index.js",
        "merge_logs"         : true,
        "max_memory_restart" : "200M"
      }],
      "author": "imweb",
      "license": "MIT"
    }
    

    定义缺省配置,这些值可以通过命令pm2 set <module-name>:<attr> <val>来重写
    在模块初始化中使用pmx.initModule(),将会返回config中的缺省配置。

    $ pm2 set server-monitoring:days_interval 2
    

    NOTE1:这些配置都会写在~/.pm2/module_conf.json,你可以手动修改他。
    NOTE2:可以通过命令pm2 conf [module-name]来打印配置信息。
    NOTE3:当你给扩展模块设置一个新的值时,扩展模块会自动重启。
    NOTE4:PM2 会对配置值自动转换类型(Boolean, Number, String)

    模块入口

    var pmx     = require('pmx');
    var conf    = pmx.initModule({
      // Override PID to be monitored
      pid : pmx.resolvePidPaths(['/var/run/redis.pid']),
    }, function(err, conf) {
      // Now the module is initialized
      require('./business_logic.js')(conf);
    });
    

    发布模块

    $ cd my-module
    $ pm2 publish
    
  • 相关阅读:
    2017-3-13 SQL server 表连接
    2017-3-13 SQL server 函数(聚合函数,数学函数,字符串函数,转换函数,时间日期函数)
    2017-3-10 SQL server T-sql语句 高级查询
    2017-3-10 SQL server 数据库 T--SQL语句
    layer框架使用的问题汇总
    pulic——功能性(自己写完测试的)list转树
    bootstrap的datetimepicker使用(1.将默认的英文设置为中文2.选择日月年的时候记录之前的操作)
    临时笔记0318
    最简单的多线程代码,一句话就可以使用
    scrollview滑动到某区域执行某种方法
  • 原文地址:https://www.cnblogs.com/zzbo/p/6360973.html
Copyright © 2020-2023  润新知