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

pm2模块编写入门的更多相关文章

  1. 【转】Nginx模块开发入门

    转自: http://kb.cnblogs.com/page/98352/ 结论:对Nginx模块开发入门做了一个helloworld的示例,简单易懂.也有一定的深度.值得一看. Nginx模块开发入 ...

  2. Nginx模块开发入门

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  3. [转] Nginx模块开发入门

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  4. nginx自定义模块编写-根据post参数路由到不同服务器

    nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自 ...

  5. Nginx模块开发入门(转)

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  6. Nginx模块开发入门(转)

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  7. Nginx自定义模块编写:根据post参数路由到不同服务器

    Nginx自定义模块编写:根据post参数路由到不同服务器 2014-05-05 15:27 blogread IT技术博客 字号:T | T Nginx可以轻松实现根据不同的url 或者 get参数 ...

  8. FW: Nginx模块开发入门

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  9. nginx自定义模块编写-实时统计模块--转载

    原文:http://www.vimer.cn/2012/05/nginx%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9D%97%E7%BC%96%E5%86%99- ...

随机推荐

  1. C#分割字符串并统计重复出现的次数

    static void Main(string[] args) { string ss = "12345678904682qwertyuioplkjhgfdsazxcvbnmmlpokuhy ...

  2. Docker容器的基本了解和命令

    一.docker和虚拟机的对比 特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生 弱于 系统支持量 单机支持上千个容器 一般几十个 更高效的利用系统资源 更快速 ...

  3. CSL 的神奇序列(猜猜猜?)

    链接:https://ac.nowcoder.com/acm/contest/551/F来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言10485 ...

  4. project2

    [概念] 要好好理解并且背下来记住 Java基础,呵呵呵.自己查吧. local host搞错了,整个跑不出来.真尴尬.不理解啊. static原来是全局的意思啊,好吧.以前都忘了,这次该记住了.st ...

  5. thinkphp 响应对象

    <?php namespace app\admin\controller; use think\Request; class Index{ public function index(Reque ...

  6. Memcached和Memcache安装(64位win7)[z]

    http://www.cnblogs.com/lucky-man/p/6126667.html 一.Memcached和Memcache的区别: 网上关于Memcached和Memcache的区别的理 ...

  7. django2.0解决跨域问题

    跨域问题一:(cors跨域问题) 解决方法: 1.安装 django-cors-headers 2.修改 setting.py INSTALLED_APPS = [ ... 'corsheaders' ...

  8. Requset模块

    Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 各种请求方式: #!/urs/bin/evn python # -*- cod ...

  9. LR回放https协议脚本失败:[GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX" failed:[10054] Connection reset by peer [MsgId:MERR-27780]

    Loadrunner默认发送是通过sockets(将http转换为sockets)发送的,而sockets默认SSL的版本为SSL2和SSL3.HTTPS协议录制的脚本以SSL3版本回放时会使sock ...

  10. 如何在OneNote for Mac 中插入文件附件?

    OneNote 2016 Mac是一款非常方便的云笔记软件,可以随时记录您稍纵即逝的创意,灵感和发现,发挥您的潜能,简化你的生活和工作.有用户反应如何在OneNote for Mac 中插入文件附件呢 ...