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
pm2模块编写入门的更多相关文章
- 【转】Nginx模块开发入门
转自: http://kb.cnblogs.com/page/98352/ 结论:对Nginx模块开发入门做了一个helloworld的示例,简单易懂.也有一定的深度.值得一看. Nginx模块开发入 ...
- Nginx模块开发入门
前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...
- [转] Nginx模块开发入门
前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...
- nginx自定义模块编写-根据post参数路由到不同服务器
nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自 ...
- Nginx模块开发入门(转)
前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...
- Nginx模块开发入门(转)
前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...
- Nginx自定义模块编写:根据post参数路由到不同服务器
Nginx自定义模块编写:根据post参数路由到不同服务器 2014-05-05 15:27 blogread IT技术博客 字号:T | T Nginx可以轻松实现根据不同的url 或者 get参数 ...
- FW: Nginx模块开发入门
前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...
- 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- ...
随机推荐
- Linux 标准输入输出、错误输出、重定向标准输出
再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >& ...
- python中的函数和变量
本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相 ...
- Game Engine Architecture 8
[Game Engine Architecture 8] 1.Differences across Operating Systems • UNIX uses a forward slash (/) ...
- Oracle导入建表的sql文件类型
- 如何自动生成图片用于测试 pytorch(No image? No need image)
if __name__ == '__main__': module = CAM_Module() in_data = torch.randint(0, 255, (2, 3, 7, 7), dtype ...
- Servlet第三篇(response;request)
response对象 Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象.和代表响应的response对象 那么我们获取浏览器提交过来的数据,找reque ...
- Activity 启动模式 FLAG
原文:https://blog.csdn.net/youhongyan/article/details/64151922 一.Activity启动模式的设置在AndroidManifest.xml文件 ...
- linux systemctl 命令学习
转载:http://www.cnblogs.com/sparkdev/p/8472711.html systemctl 命令有两大类功能: 控制 systemd 系统 管理系统上运行的服务 在介绍这些 ...
- 显式Intent 和隐式 Intent 的区别
显式 Intent : 在知道目标组件名称的前提下,去调用Intent.setComponent().Intent.setClassName()或Intent.setClass()方法或者在new I ...
- JavaScript初见
警告alert() 确认confirm() 提问prompt() 空格 JavaScript-打开新窗口(window.open) open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: ...