18

1、node守护进程比较

  • node守护进程比较
nodemon:开发环境使用,修改后自动重启。
forever:管理多个站点,每个站点访问量不大,不需要监控。
pm2:网站访问量比较大,需要完整的监控界面。
  • 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
pm2启动的服务都是在后台运行,如需部署docker上需加--no-daemon参数
,而node默认前台运行,可通过以下方式实现原生支持
$ pm2 start app.js --no-daemon
# 或
$ nohup node app.js &

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

安静de沉淀
6.5k 声望282 粉丝

忙起来像个狗?,轻松起来像只猫?,没工作闲得像条鱼?