警告:本文仅作为 PM2 入门级介绍指南,并无实现原理等深入内容的研究,PM2 深度用户请绕行!另外,如果文章内容存在过分夸张或者解释不合理的地方,敬请指(忽)正(略)!
前方有老司机出没,请系好安全带,赶紧上车。
一般来说,常规的启动方式有命令行启动和脚本启动两种方式。另外,还有异端邪教模式,比如使用 nodejs 程序实现子进程启动,或者 java 程序实现等,其实本质也还是命令行启动(什么异端邪教不存在的,纯属调侃哈),至于脚本启动内部如何实现,就有待大神们自行探索了。
命令行启动
- 默认启动
权当是 pm2 界的 hello word 吧…
# 启动一个nodejs进程,进程名默认为nodejs文件名,默认为fork单进程模式
pm2 start app.js
- 自定义启动
给狗子(应用程序)起个名字。
# 启动并自定义进程名
pm2 start app.js --name processNames
- 负载均衡
硬核服务器(cpu 多核心),一行命令直接资源最大化,或者自定义化利用!
# 负载均衡(服务器只是满足双核及以上),max为默认最大cpu数,可以自定义
pm2 start app.js -i max
- 目录监听
修改代码直接都不用重启了,一次部署,永久更新!傻瓜式的骚操作。
# 监听目录变化,默认不启动
pm2 start app.js --watch
- 携带参数启动
含金钥匙(参数)出生的狗子。
# 携带test和100启动进程
pm2 start app.js -test -100
配置启动脚本
- 首先,编写我们的剧本(脚本)
{
"apps": [{
"name": "狗子1",
"script": "./app1.js",
"watch": true
}, {
"name": "狗子2",
"script": "./app1.js",
"watch": false
}]
}
- 然后,一键!(其实还是命令行)这时,剧本里的狗子们批量呱呱坠地了。
pm2 start app.json
异端邪教
- Nodejs 实现
没代码你说个…所以,直接上代码:
const child = require("child_process");
let cmd = child.spawn("pm2",["start","./app.js"])
cmd.stdout.on("data",function(data){
// 正常输出
})
cmd.stderr.on("data",function(data){
// 异常输出
})
cmd.on("exit",function(data){
// 退出
})
- 其他实现
上面的例子就是砖,感兴趣的同学,可以自行造玉!
先聊这么多吧,撒花,礼毕!散了散了。。。
网友评论