今天研究了一下使用pm2来管理node服务器,这样不仅可以看到每个服务占用的内存和cpu,还可以很方便的启动和重启,也可以使用--watch,自动重启,而且官方说pm2 reload来重启服务器是‘无缝’重启的。。
官方快速入门文档传送门
简单的使用步骤:
1.下载
npm install pm2 -g
2.启动服务
pm2 start < app name>
3.重启服务
pm2 restart < app name>
pm2 reload < app name>
4.停止服务
pm2 stop < app name>
5.查看所有服务状态
pm2 list
6.删除服务,和stop不同的是,删除后不会存在list列表中。
pm2 delete < id>
7.删除所有服务
pm2 delete all
8.如果遇到稀奇古怪的问题可以使用
pm2 kill
慎用,会杀死所有服务,守护进程也会杀掉好像,和delete的区别不清楚。
9.高大上的监控界面,目前只知道用来看日志。
pm2 monit
其他用法还不清楚。
然后就是配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| { "apps": { "name": "wuwu", "script": "./bin/www", "cwd": "./", "args": "", "interpreter": "", "interpreter_args": "", "watch": true, "ignore_watch": [ "node_modules", "logs" ], "exec_mode": "cluster_mode", "instances": 4, "max_memory_restart": 8, "error_file": "./logs/app-err.log", "out_file": "./logs/app-out.log", "merge_logs": true, "log_date_format": "YYYY-MM-DD HH:mm:ss", "min_uptime": "60s", "max_restarts": 30, "autorestart": true, "cron_restart": "", "restart_delay": "60s" "env": { "NODE_ENV": "production", "REMOTE_ADDR": "爱上大声地" }, "env_dev": { "NODE_ENV": "development", "REMOTE_ADDR": "" }, "env_test": { "NODE_ENV": "test", "REMOTE_ADDR": "" } } }
|
ps:我觉得最强大的是,pm2内置了 cluster 模块,可以指定启动进程个数,然后就是一堆服务监听一个端口,实现了集群.emm..
但是好像也有不好的地方。