pm2

10. 三月 2017 Nodejs 0

之前有篇文章介绍过forever用来维护node进程,但是forever只能做的事情就是你的node崩了,它帮你自动重启。其他没什么耀眼的功能。相对于服务端来说,我更推荐pm2.

pm2的作用:

内建负载均衡(使用Node cluster 集群模块)
后台运行
0秒停机重载,我理解大概意思是维护升级的时候不需要停机.
具有Ubuntu和CentOS 的启动脚本
停止不稳定的进程(避免无限循环)
控制台检测
提供 HTTP API
远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )

安装

npm install -g pm2

没有报错就是安装成功

o_1

这样就可以使用了。

pm2 start server.js

在一些服务器上可能会报错:

pm2 : 未发现命令。

这个时候需要将pm2 的bin配置到环境变量中去。

拿centos举例:

  1. 首先找到你的pm2 的bin目录的位置,我的是在/Node/node-v4.4.7-linux-x64/lib/node_modules/pm2/bin
  2. 使用root用户(没有root权限的su一下)打开/etc/profile文件  vi /etc/profile
  3. export PATH 之前加上一行代码 PATH=$PATH:/Node/node-v4.4.7-linux-x64/lib/node_modules/pm2/bin
  4. 保存,完成。

修改profile文件必须拥有root权限,如果使用root还不能修改,检查一下是否安装了云锁等安全防护软件。

下面就可以正常使用了:

  • 启动项目 ,并命名一个程序名称:  pm2 start server.js --name test   
  • 可以根据程序名称进行停止:  pm2 stop test
  • 删除进程:pm2 delete test

当应用程序代码有更新,可以用重载来加载新代码,也可以用重启来完成

  • 重启pm2 reload test
  • 重载 pm2 restart test
  • 查看详情:pm2 show test

对多个项目进行批量操作,如下(重加载全部/停止全部/重启全部/删除全部)

开发环境的启动方式都是fork形式, 生产环境一般使用cluster方式。

列举所有进程:pm2 list

实时监视: pm2 monit

更多操作看这里


发表评论

电子邮件地址不会被公开。