美文网首页不正经谈技术系列小码农养成记
大话 pm2 系列之花式启动(一)

大话 pm2 系列之花式启动(一)

作者: F_wind | 来源:发表于2021-10-20 08:05 被阅读0次

    警告:本文仅作为 PM2 入门级介绍指南,并无实现原理等深入内容的研究,PM2 深度用户请绕行!另外,如果文章内容存在过分夸张或者解释不合理的地方,敬请指(忽)正(略)!

    前方有老司机出没,请系好安全带,赶紧上车。

    一般来说,常规的启动方式有命令行启动和脚本启动两种方式。另外,还有异端邪教模式,比如使用 nodejs 程序实现子进程启动,或者 java 程序实现等,其实本质也还是命令行启动(什么异端邪教不存在的,纯属调侃哈),至于脚本启动内部如何实现,就有待大神们自行探索了。

    命令行启动

    1. 默认启动
      权当是 pm2 界的 hello word 吧…
    # 启动一个nodejs进程,进程名默认为nodejs文件名,默认为fork单进程模式
    pm2 start app.js
    
    1. 自定义启动
      给狗子(应用程序)起个名字。
    # 启动并自定义进程名
    pm2 start app.js --name processNames
    
    1. 负载均衡
      硬核服务器(cpu 多核心),一行命令直接资源最大化,或者自定义化利用!
    # 负载均衡(服务器只是满足双核及以上),max为默认最大cpu数,可以自定义
    pm2 start app.js -i max
    
    1. 目录监听
      修改代码直接都不用重启了,一次部署,永久更新!傻瓜式的骚操作。
    # 监听目录变化,默认不启动
    pm2 start app.js --watch
    
    1. 携带参数启动
      含金钥匙(参数)出生的狗子。
    # 携带test和100启动进程
    pm2 start app.js -test -100
    

    配置启动脚本

    1. 首先,编写我们的剧本(脚本)
    {
        "apps": [{
            "name": "狗子1",
            "script": "./app1.js",
            "watch": true
        }, {
            "name": "狗子2",
            "script": "./app1.js",
            "watch": false
        }]
    }
    
    1. 然后,一键!(其实还是命令行)这时,剧本里的狗子们批量呱呱坠地了。
    pm2 start app.json
    

    异端邪教

    1. 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){
        // 退出
    })
    
    1. 其他实现
      上面的例子就是砖,感兴趣的同学,可以自行造玉!

    先聊这么多吧,撒花,礼毕!散了散了。。。

    相关文章

      网友评论

        本文标题:大话 pm2 系列之花式启动(一)

        本文链接:https://www.haomeiwen.com/subject/shazoltx.html