设为首页 收藏本站
查看: 1191|回复: 0

[经验分享] Nodejs学习笔记(十三)— PM2

[复制链接]

尚未签到

发表于 2017-2-22 11:40:34 | 显示全部楼层 |阅读模式
目录




  • 简介
  • pm2安装
  • 操作

    • 启动
    • 关闭
    • 其它方式启动/关闭
    • 从PM2中删除
    • 重载和重启
    • 查看详细信息
    • 多项目操作


  • 集群
  • 其它操作
  • 写在之后...

简介
  PM2
  pm2是一个内置负载均衡的node.js应用进程管理器(也支持Windows),其它的类似功能也有不少,但是感觉pm2功能更强,更值的推荐
  GitHub地址:https://github.com/Unitech/pm2

  API Docs:http://pm2.keymetrics.io/docs/usage/cluster-mode/
  NPM地址:https://www.npmjs.com/package/pm2


  使用体会:



  1.简单易用、后台运行、快速部署,常用到的命令就几个



  2.可轻松集群模式启动



  3.可以无宕机重暂应用程序,保持不断连接的情况下轻松重载代码



  4.完善的日志



  5.自动停止不稳定的进程



  6.保活应用程序



  ….
pm2安装
  官方安装说明: http://pm2.keymetrics.io/docs/usage/quick-start/



npm install pm2 -g
  安装成功如下图

DSC0000.png


  查看版本



pm2 -v
  各平台安装方法一致

操作
  我这里有个express的web项目:pm2sample,端口是11111
  启动



pm2 start app.js
  成功如下图

DSC0001.png


  这样就可以通过http://localhost:11111 来访问
  关闭



pm2 stop 0
  为什么stop后是0? 从上图可以看出进程ID为0,所以通过进程ID可以关闭,然后这种方式不易记,下面我看看其它方式启动和关闭
  其它方式启动/关闭
  启动项目,并命名一个应用程序名



pm2 start app.js --name test
  启动后结果如下图,你可以看到App name

DSC0002.png


  根据App name关闭项目



pm2 stop test
  可以自行试一下效果,关闭成功!
  从PM2中删除



pm2 delete test
  当然也可以pm2 delete 进程ID
  重载和重启
  当应用程序代码有更新,可以用重载来加载新代码,也可以用重启来完成



pm2 reload test
pm2 restart test
  reload可以做到0秒宕机加载新的代码,restart则是重新启动,生产环境中多用reload来完成代码更新!
  查看详情  



pm2 show test
  输出如下图

DSC0003.png


  通过查看详情就可以看到很多有用信息,包含日志和错误输出的文件路径(感觉日志是用的比较多的)  
  多项目操作
  上面是单项目操作,多项目操作是如何呢?
  启动其它项目也如上面命令,我新启一个项目:pm2sample2(端口为11112)



cd 项目目录
pm2 start app.js --name test2
  启动后如下图

DSC0004.png


  想要对这2个项目进行批量操作(多个也一样),如下(重加载全部/停止全部/重启全部/删除全部)



pm2 reload all
pm2 stop all
pm2 restart all
pm2 delete all

集群
  上面从图中可以看出mode是“fork”
  开发环境中多以fork的方式启动,生产环境中多用cluster方式启动
  启动方式



pm2 start app.js -i 2 --name test
  这表示启动2个并命名为test,在后台以cluster方式运行

DSC0005.png


  从上图可以看出mode为“cluster”方式,其它操作就可以通过上面用过的方式去启动、关闭、重载、重启、删除

其它操作
  watching
  上面的示例图中可以看一“watching”一项,这个项默认是disabled,可以通过如下命令开启



pm2 start app.js --name test --watch
  上面的命令中启去吧了test项目并开启了watching,这个用处主要更新代码后,不用重载或重启项目即可以立即让更新的代码起作用
  建议:这个适合在开发时用,可以省不少时间,生产环境下最好不要用
  list



pm2 list
  可以列出pm2中所有项目
  monit



pm2 monit
DSC0006.png


  用monit可以打开实时监视器去查看资源占用情况
  logs



pm2 logs
  通过上面命令可以实时查看日志输出情况(当然,我更习惯去日志文件里看)

写在之后...
  本篇主要对PM2常用命令进行说明
  PM2还有其它很多其它功能,可以通过上面提供的api链接去查看
  但是基本用上面这些命令就够了,现在项目中就用的PM2,感觉还是不错,用于生产环境完全没问题!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-345713-1-1.html 上篇帖子: 大熊君大话NodeJS之------FS文件模块 下篇帖子: 如何优雅的处理Nodejs中的异步回调
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表