博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pm2进阶使用
阅读量:4605 次
发布时间:2019-06-09

本文共 2023 字,大约阅读时间需要 6 分钟。

启用集群模式

只需要在启动应用时带上i参数

pm2 start app.js -i max

max:意味着PM2将自动检测可用的CPU数量和运行多个进程可以在负载均衡模式(但是不推荐使用)

或者使用json文件启动的

{  "apps" : [{    "script"    : "api.js",    "instances" : "max",    "exec_mode" : "cluster"  }]}

当然还支持js和ylm文件,js示例如下

module.exports = {  apps : [{    name        : "worker",//应用名称    script      : "./worker.js", //脚本路径相对于pm2开始    watch       : true, //开启监察,文件改变自动重启    env: {      "PORT": 3000,      "NODE_ENV": "development",    },    env_production : {        "PORT": 80       "NODE_ENV": "production"    }  },{    name       : "api-app",    script     : "./api.js",    cwd         : "/home/www/project_root/current",//     "error_file": "./logs/app.err.log",    "out_file": "./logs/app.out.log",     "log_date_format" : "YYYY-MM-DD HH:mm Z"    instances  : 4, // 实例(多核)    exec_mode  : "cluster" // 集群模式  }]}

然后再启动进程

pm2 start processes.json

重载应用

pm2 reload 

或者

pm2 reload process.jsonpm2 reload process.json --only api

一键发布

yml的书写方式(process.yml)

apps:  - script   : server.js    name : 'pm2 test'    watch  : true    env    :      NODE_ENV: development    env_production:      NODE_ENV: productiondeploy :  production :    user : root    key : C:/Windows/SSH-ubuntu.pem  #服务器sshkey(阿里云再服务器镜像创建的时候会生成 然后保存到本地)    host :       - 120.78.174.212                #服务器ip    port : 22    ref : origin/master    repo : git@gitee.com:artiely/pm2test.git  #仓库地址    path : /www/pm2test/production               #发布地址    ssh_options : StrictHostKeyChecking=no       #ssh权限    pre-deploy : git fetch --all                 #发布前的操作    post-deploy : 'npm install && npm run build && pm2 startOrRestart process.yml --env production'    env :       NODE_ENV : production

第一次发布本地执行

pm2 deploy process.yml production setup

然后每次发布只需本地执行如下命令,服务器就会自动拉取创库代码并发布

pm2 deploy process.yml production

注意事项

github上必须有服务器的公钥和本地的公钥

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

这里有各个系统生成id_rsa的方法

在实际操作中可能由于操作系统不同和权限的原因会遇到一些坑,大家参考报错信息都可以寻得答案

转载于:https://www.cnblogs.com/coolslider/p/8510993.html

你可能感兴趣的文章
在JavaScript中,为什么我们在用定时器控制某一元素移动时,有时会出现元素越走越快的现象...
查看>>
2019.04.06 电商06 分页
查看>>
12.8 定位属性
查看>>
Kotlin中三元运算符
查看>>
Fragment处理接口回调,网络请求数据
查看>>
2. XHTML_WHY
查看>>
树梅派安装raspbian
查看>>
Git In Five Minutes (zz)
查看>>
Sysinternals
查看>>
assert函数
查看>>
label中添加图片
查看>>
float类型保存两位小数
查看>>
WPF动画之关键帧动画(2)
查看>>
poj 1837 Balance
查看>>
NO1:安装VMLinux虚拟机,安装配置Samba实现Linux与Windows文件共享
查看>>
Log4net 日志传到 graylog监控
查看>>
XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Peterhof
查看>>
最优贸易 2009年NOIP全国联赛提高组(最短路)
查看>>
IOS 沙盒两种数据读取方式&NSUserDefaults读取方式
查看>>
微信小程序中的组件使用2
查看>>