pm2是一个带有负载均衡功能的应用进程管理器,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护等功能。他会确定重启开机之后,能够保证程序也能运行起来。目前还没有操作这部分,没有过多介绍

启动

pm2 start app.j

添加进程/应用监视watch  (监视)

pm2 start app2.js  --watch

上面图片中watching栏,disabled变为enabled

列出所有进程

pm2 list

结束进程

pm2 stop app

结束所有进程

pm2 stop all

删除进程

pm2 delete app

删除所有进程

pm2 delete all

查看某个进程情况

pm2 describe app

查看所有进程资源消耗情况

pm2 monit

重启进程

pm2 restart app

重启所有进程

pm2 restart all

pm2 restart 会杀死所有进程 从而reload实现0秒的停机时间重新加载,要重新加载使用如下命令

pm2 reload <app_name>
pm2 reload process.json

查看进程日志

pm2 logs app

查看所有进程日志

pm2 logs

保存脚本

pm2 save

创建开机启动脚本

pm2 startup systemd

更新pm2

确保正确保存了所有进程:

pm2 save

然后从NPM安装最新的PM2版本:

npm install pm2 -g

最后更新内存中的PM2进程:

pm2 update

pm2配置文件

文件名 test.json  可以通过 pm2 start test.json 快速启动      app中每一项就是一个应用

{
   "apps": [
       {
      "name": "coin1_6",
       "cwd": "./",
       "script": "coin1_6.js",
       "log_date_format": "YYYY-MM-DD HH:mm Z",
       "error_file": "/var/log/node-app/node-app.stderr.log",
       "out_file": "log/node-app.stdout.log",
       "pid_file": "pids/node-geo-api.pid",
        "instances": "8",
        "min_uptime": "60s",
        "max_restarts": 10,
        "max_memory_restart": "100M",
        "cron_restart": "1 0 * * *",
        "watch": true,
        "merge_logs": true,
        "exec_interpreter": "node",
        "exec_mode": "cluster",
        "autorestart": false,
        "vizion": false
  }
]
}

name://应用程序名称
cwd://应用程序所在的目录
script://应用程序的脚本路径
log_date_format:
error_file:// 错误日志路径
out_file:// 普通日志路径
pid_file://自定义应用程序的pid文件
instances://启动的线程数量(线程最大数量一般是由服务器核数决定的)
min_uptime://最小运行时间,这里设置的是60s即如果应用程序在60s内退出,pm2会认为程序异常退出,此时触发重启max_restarts设置数量
max_restarts://设置应用程序异常退出重启的次数,默认15次(从0开始计数)
cron_restart://定时启动,解决重启能解决的问题
watch://是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。
merge_logs:
exec_interpreter://应用程序的脚本类型,默认是node
exec_mode://应用程序启动模式,默认是fork
autorestart://启用/禁用应用程序崩溃或退出时自动重启
vizion://启用/禁用vizion特性(版本控制)

本人使用的时候:

1.max_memory_restart在cluster状态下小于平均的mem,服务器的cpu会占的很高,

......

详细可查看官网文档:http://pm2.keymetrics.io/docs/usage/quick-start/

pm2,部署nodejs,使用方法及自己使用后总结的经验的更多相关文章

  1. nginx+ssl+pm2 部署 nodejs 服务

    nginx+pm2 部署 nodejs 服务 最近在 centos 上部署 nodejs 服务,记下来步骤: 注意都是使用 root 用户. 下载 nvm: curl -o- https://raw. ...

  2. PM2 部署 nodejs 项目

    在网上找到pm2.目前似乎最常见的线上部署nodejs项目的有forever,pm2这两种.使用场合: forever管理多个站点,每个站点访问量不大,不需要监控. pm2 网站访问量比较大,需要完整 ...

  3. pm2部署nodejs项目

    安装: 最新的PM2稳定版可通过NPM进行安装: npm install pm2@latest -g 用法: 启动,守护和监控应用程序的最简单的方法是使用以下命令行: pm2 start app.js ...

  4. PM2 部署 nodejs API项目

    PM2的主要特性: 内建负载均衡(使用Node cluster 集群模块) 后台运行 0秒停机重载,我理解大概意思是维护升级的时候不需要停机. 具有Ubuntu和CentOS 的启动脚本 停止不稳定的 ...

  5. PM2来部署nodejs服务器永久开启

    pm2 日常使用   1. pm2 是什么? 日常开发中需要启动一个node项目,需要用npm run …,,如果终端被关掉,程序也就自动停止,有时候几个项目一起跑起来,好几个终端开着,个人不太喜欢, ...

  6. 在Linux系统中部署NodeJS项目

    在Linux系统中部署NodeJS项目 安装NodeJS 首先进入 Node 官网,下载对应的 Node包 下载下来后是一个后缀为 xz 的压缩包,我们把这个包上传到 Linux 系统中的 /usr/ ...

  7. 阿里云部署nodejs服务器(windows)

    花了大半个月做的网站终于要上线了,周围的同学们很多都在使用阿里云的服务器,我也入手了一台.考虑到自己不是很适应ubuntu的命令行界面,于是买了个windows的,上网搜了一下,似乎都是用linux来 ...

  8. 使用nssm在windows服务器上部署nodejs

    Linux上,可以轻松的使用forever或者pm2来部署nodejs应用.但是在windows下就麻烦了,pm2明确的说支持Linux & MacOS,forever在windows下貌似问 ...

  9. nssm在windows服务器上部署nodejs,coffee启动方式

    本想用forever / pm2 来部署nodejs, 百度后发现只能在Linux系统上使用,window上没法使用,兜一圈后又转nssm了.... 在Linux上,可以轻松的使用forever或者p ...

随机推荐

  1. JS 面向对象 ~ 继承的7种方式

    前言: 继承 是 OO 语言中的一个最为人津津乐道的概念.许多 OO 语言都支持两种继承方式:接口继承 和 实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在 ...

  2. vue中使用LESS、SASS、stylus

    less的使用 npm install less less-loader --save 修改webpack.config.js文件.vue.cli 搭建项目可跳过此步 { test: /\.less$ ...

  3. Bean的自动装配

    再说自动装配之前,我们先聊一聊什么是手动装配. 手动装配就是我们在先前讲的那些,要自己给定属性,然后赋值 Spring IOC容器可以自动装配Bean,需要做的仅仅实在<bean>的aut ...

  4. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置   1.Tomcat的下载 地址:https://tomcat.apach ...

  5. Nginx 11阶段的顺序处理

    L49

  6. BZOJ1975[Sdoi2010]魔法猪学院——可持久化可并堆+最短路树

    题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...

  7. Android 6.0以上动态获取权限

    首先在清单文件中注册 然后在MainActivity.java中将权限封装到一个String数组中 static final String[] PERMISSION = new String[]{ M ...

  8. Java使用J4L识别验证码

    1.首先要下载j4l的相应文件和jar 下载地址:http://www.java4less.com/ocrtools/ocrtools.php?info=download 2.下载完成之后解压,文件目 ...

  9. Codeforces484 A. Bits

    题目类型:位运算 传送门:>Here< 题意:求区间\([L,R]\)内二进制中1的个数最多的那个数,如果有多解输出最小解 解题思路 想了15min就一遍A了 我们可以贪心地在\(L\)的 ...

  10. BZOJ 3456: 城市规划 与 多项式求逆算法介绍(多项式求逆, dp)

    题面 求有 \(n\) 个点的无向有标号连通图个数 . \((1 \le n \le 1.3 * 10^5)\) 题解 首先考虑 dp ... 直接算可行的方案数 , 容易算重复 . 我们用总方案数减 ...