
写node的时候,每次代码改动,保存完,需要频繁的手动ctrl + c,node app.js,这样太麻烦了,现在推荐一个保存后可自动运行的工具:PM2
PM2是什么
PM2(Process Manager)是具有内置负载均衡器的Node.js应用程序的生产运行时和进程管理器。 它允许您永久保持应用程序活跃,无需停机即可重新加载它们,并促进常见的Devops任务。
PM2的主要特性:
- 内建负载均衡(使用Node cluster 集群模块)
- 后台运行
- 0秒停机重载,我理解大概意思是维护升级的时候不需要停机.
- 具有Ubuntu和CentOS 的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )
PM2安装
//全局安装pm2,依赖node和npm npm install pm2 -g
PM2使用
假设你的服务端启动文件为app.js,
pm2 start app.js:启动pm2 list:列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次,因为没处理的异常pm2 monit:监视每个node进程的CPU和内存的使用情况pm2 logs显示所有进程日志pm2 stop all停止所有进程pm2 restart all重启所有进程pm2 reload all0秒停机重载进程 (用于 NETWORKED 进程)pm2 stop 0停止指定的进程pm2 restart 0重启指定的进程pm2 startup产生 init 脚本 保持进程活着pm2 web运行健壮的 computer API endpoint (http://localhost:9615)pm2 delete 0杀死指定的进程pm2 delete all杀死全部进程
运行进程的不同方式:
pm2 start app.js -i max根据有效CPU数目启动最大进程数目pm2 start app.js -i 3启动3个进程pm2 start app.js -x用fork模式启动 app.js 而不是使用 clusterpm2 start app.js -x -- -a 23用fork模式启动 app.js 并且传递参数 (-a 23)pm2 start app.js --name serverone启动一个进程并把它命名为 serveronepm2 stop serverone停止 serverone 进程pm2 start app.json启动进程, 在 app.json里设置选项pm2 start app.js -i max -- -a 23在–之后给 app.js 传递参数pm2 start app.js -i max -e err.log -o out.log启动 并 生成一个配置文件
Web前端(W3Cways.com) - Web前端学习之路