1、node守护进程比较
1.)node守护进程比较
nodemon:开发环境使用,修改后自动重启。
forever:管理多个站点,每个站点访问量不大,不需要监控。
pm2:网站访问量比较大,需要完整的监控界面。
2.)pm2主要特性
内建负载均衡(使用Node cluster 集群模块)
后台运行
0秒停机重载
开机自启动脚本
停止不稳定的进程(避免无限循环)
控制台检测
提供远程控制和实时的接口API (允许和PM2进程管理器交互)
2、pm2常用命令
1.)安装
$ npm install -g pm2
若pm2 -v 不起作用,把node目录下bin添加到PATH路径里
2.)单个启动
$ pm2 start app.js # 启动
$ pm2 start app.js -i 4 # 启动4个应用实例,自动负载均衡
# 监听文件变化,配合pm2 logs,方便本地开发
$ pm2 start app.js --watch
3.)批量启动
新建.json文件如server.json,配置如下:
{
"apps": [{
"name": "appA",
"script": "./appA.js",
"watch": false
}, {
"name": "appB",
"script": "./appB.js",
"watch": false
}]
}
----------------------------------
# 再执行:
$ pm2 start server.json
批量启动是以restart模式启动,可以多次执行
4.)重启
$ pm2 restart app_name|app_id # 重启
$ pm2 restart all # 重启所有进程,相当stop+start
$ pm2 reload all # 0秒停机重载进程 (用于不间断进程)
5.)查看
$ pm2 list # 查看进程
$ pm2 logs # 查看日志
$ pm2 show app_name|app_id # 查看进程详情
$ pm2 monit # 查看CPU和内存资源占用
6.)停止
$ pm2 stop app_name|app_id
$ pm2 stop all # 停止所有
7.)删除
$ pm2 delete app_name|app_id # 从列表中删除指定的进程
$ pm2 delete all # 从列表中删除全部进程
$ pm2 kill # 杀死守护进程
8.)开机自启动
$ pm2 startup # 创建开机自启动命令
$ pm2 save # 保存当前应用列表
$ pm2 resurrect # 重新加载保存的应用列表
$ pm2 unstartup # 移除开机自启动
9.)pm2更新
$ pm2 save # 保存当前应用列表
$ npm install pm2 -g
$ pm2 update