前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pm2模块编写入门

pm2模块编写入门

作者头像
IMWeb前端团队
发布2019-12-04 22:37:26
5440
发布2019-12-04 22:37:26
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

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-02-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PM2 模块
  • 管理模块
  • 创建PM2模块
  • Package.json 语法糖
  • 模块入口
  • 发布模块
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档