PM2 的功能不多做介绍了,总之使用简单,功能强大。
今天实现了本地自动部署node项目到服务器的流程。简单总结下几个注意点。
建议先看 文档

  1. 先要保证要部署的服务器上(以下简称server)能直接ssh拉仓库代码,比如 git clone git@gitee.com:finley/demo.git。不行的话配下server生成ssh-key,然后把public key告诉代码仓库服务商,比如coding.net, github。
  2. 权限问题,比如server的登录用户是Ubuntu,将来项目要部署在/home/ubuntu下面,可以执行下 sudo chown ubuntu:ubuntu /home/ubuntu/.pm2/* 不然可能会部署失败。
  3. 部署成功后会在配置的项目路径里出现以下三个目录:

current -- 当前服务运行的文件夹(是source的软链接)
share -- log pid 等共享数据
source -- clone 下来的源代码

  1. 配置脚本
module.exports = {/*** Application configuration section* http://pm2.keymetrics.io/docs/usage/application-declaration/*/apps : [{name      : 'NODE-API',script    : 'server.js',env_development: {NODE_ENV: 'development',SERVER_PORT: 8081,LOGSTASH_URL: 'http://localhost/finley/PHP/test.php'},env_production : {NODE_ENV: 'production',SERVER_PORT: 8081,LOGSTASH_URL: 'http://192.168.100.16:9700'}}],/*** Deployment section* http://pm2.keymetrics.io/docs/usage/deployment/*/deploy : {// 项目信息// 下面的配置是我用什么用户登录哪个服务器,从哪拉代码,项目存到什么位置。拉完执行的脚本是啥'node1' : {user : 'ubuntu',// 写成数组,可以同时部署到多台服务器host : '119.254.xxx.xxx',ref  : 'origin/develop',repo : 'ssh://git@demo.com/demo.git',// 项目的存放地址,会生成current, source, share目录path : '/home/ubuntu/node-project',// "ssh_options": ["StrictHostKeyChecking=no", "PasswordAuthentication=no"],"post-deploy" : 'npm install && pm2 startOrRestart ecosystem.config.js --env production'}}
};
  1. 执行命令, 如果是windows,在CMD中执行没用,建议在git bash下执行。
    node1就是要部署的项目名称
    pm2 deploy ecosystem.config.js node1 setup
    这个命令只是拉仓库代码
    pm2 deploy ecosystem.config.js node1
    执行这个命令会执行 post-deploy,运行项目

pm2 reload 和pm2 restart 有啥区别

官方说明:As opposed to restart, which kills and restarts the process, reload achieves a 0-second-downtime reload.
简单理解:
restart = stop+start
reload = 重新读取配置文件
具体用哪个要根据项目运行实际情况,有些项目需要7*24运行,不得stop,这时候用reload比较好。

PM2 node进程管理工具 自动部署小结相关推荐

  1. PM2 进程管理工具使用总结

    注:2016年的文章,发在掘金上,不知道是否过时了. 对于后台进程的管理,常用的工具是crontab,可用于两种场景:定时任务和常驻脚本.关于常驻脚本,今天介绍一款更好用的工具:pm2,基于nodej ...

  2. supervisor 守护多个进程_进程管理工具之Supervisor

    相关介绍 Supervisor是用Python 开发的一个client/server服务,是 Linux /Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止. ...

  3. Docker管理工具-Swarm部署记录

    Swarm介绍 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机.Swarm使用标准的Docke ...

  4. 进程管理工具-Supervisord +CeSi

    Supervisor 简介 Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动.重启(自动重启程序).关闭进程 ...

  5. Ubuntu下进程管理工具

    Ubuntu下进程管理工具 进程管理 一些细节 进程一般分为交互进程.批处理进程和守护进程三类. 守护进程总是活跃,在系统启动时通过脚本自动启动,或由root启动,通常在后台运行. 一个进程可以拥有子 ...

  6. systemd进程管理工具实战教程

    systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理.   ...

  7. Supervisor 进程管理工具

    简介: Supervisor 进程管理工具 一.安装 shell > yum -y install python-pipshell > pip install supervisor# 这样 ...

  8. Linux进程管理工具的使用

    进程管理工具之一 htop htop是基于ncurses做的,可以说是top的升级版,htop在继承了top原有的功能外让界面更加友好,支持交互式操作并且可以使用鼠标操作. 在命令行里输入htop回车 ...

  9. python怎么打开程序管理器_Python 进程管理工具 Supervisor 使用教程

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 进程管理工具 Supervisor 使用教程 Supervisor ...

最新文章

  1. 2017-9-11-颜色空间
  2. html canvas抽奖,HTML5 Canvas圆盘抽奖应用(适用于Vue项目)
  3. 2小时彻底搞懂指针与共用体!
  4. win10万能触摸屏驱动_教你win10系统设置usb鼠标驱动的方法
  5. 什么是套接字?Socket基本介绍
  6. AopContext.currentProxy();为什么能获取到代理对象
  7. 使用outputstream写到指定位置_MaxCompute Spark与Spark SQL对比分析及使用注意事项
  8. 【BZOJ】1176: [Balkan2007]Mokia(cdq分治)
  9. Linux 常用系统工具与初始化配置
  10. JTAG与SWD接口定义
  11. python人民币小写转大写_python将人民币转换大写的脚本源码
  12. 解决iPhone发送短信显示红色感叹号:尚未送达
  13. 23andme的申请流程和注意事项
  14. 决策树参数criterion
  15. MFC中制作Dll中带对话框资源的动态库
  16. EclipseCDT
  17. 2021年企业十大科技趋势预测
  18. 数学大世界杂志数学大世界杂志社数学大世界编辑部2022年第7期目录
  19. 【经典】非全序列底板通俗演义-AC OC EG CL 红黑碳王
  20. Php实现投票系统,php实现投票系统的示例代码分析

热门文章

  1. win7配置计算机失败还原更改,win7配置失败如何处理?win7配置失败还原更改教程...
  2. java校验框架源码解析_Spring Boot原理剖析和源码分析
  3. stm32 IOT_基于STM32平台的cubeMX和HAL库详解
  4. 笔记本怎么桌面显示计算机,笔记本电脑桌面不显示了如何解决
  5. 3 域名正则_一个正则表达式怎么会引起线上CPU狂飙?
  6. python:文件路径多级获取
  7. 【项目实战课】基于Pytorch的DCGAN人脸嘴部表情图像生成实战
  8. 【AI产品】如何让Google的AI给你捕捉最美的自拍瞬间
  9. 全球及中国商用卫生间纸巾分配器行业需求前景及发展趋势研究报告2021-2027年版
  10. sunPKCS11加载动态库(转)