之前有篇文章介绍过forever用来维护node进程,但是forever只能做的事情就是你的node崩了,它帮你自动重启。其他没什么耀眼的功能。相对于服务端来说,我更推荐pm2.
pm2的作用:
内建负载均衡(使用Node cluster 集群模块)
后台运行
0秒停机重载,我理解大概意思是维护升级的时候不需要停机.
具有Ubuntu和CentOS 的启动脚本
停止不稳定的进程(避免无限循环)
控制台检测
提供 HTTP API
远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )
安装
npm install -g pm2
没有报错就是安装成功
这样就可以使用了。
pm2 start server.js
在一些服务器上可能会报错:
pm2 : 未发现命令。
这个时候需要将pm2 的bin配置到环境变量中去。
拿centos举例:
- 首先找到你的pm2 的bin目录的位置,我的是在
/Node/node-v4.4.7-linux-x64/lib/node_modules/pm2/bin
- 使用root用户(没有root权限的su一下)打开/etc/profile文件
vi /etc/profile
- 在
export PATH
之前加上一行代码PATH=$PATH:/Node/node-v4.4.7-linux-x64/lib/node_modules/pm2/bin
- 保存,完成。
修改profile文件必须拥有root权限,如果使用root还不能修改,检查一下是否安装了云锁等安全防护软件。
下面就可以正常使用了:
- 启动项目 ,并命名一个程序名称:
pm2 start server.js --name test
- 可以根据程序名称进行停止:
pm2 stop test
- 删除进程:
pm2 delete test
当应用程序代码有更新,可以用重载来加载新代码,也可以用重启来完成
- 重启:
pm2 reload test
- 重载:
pm2 restart test
- 查看详情:
pm2 show test
对多个项目进行批量操作,如下(重加载全部/停止全部/重启全部/删除全部)
pm2 reload all pm2 stop all pm2 restart all pm2 delete all
开发环境的启动方式都是fork
形式, 生产环境一般使用cluster
方式。
列举所有进程:pm2 list
实时监视: pm2 monit
文章评论