pm2,部署nodejs,使用方法及自己使用后总结的经验

时间:2022-10-31 20:41:21

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

启动

pm2 start app.j

pm2,部署nodejs,使用方法及自己使用后总结的经验

添加进程/应用监视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,部署nodejs,使用方法及自己使用后总结的经验

重启进程

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&plus;ssl&plus;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服务器&lpar;windows&rpar;

    花了大半个月做的网站终于要上线了,周围的同学们很多都在使用阿里云的服务器,我也入手了一台.考虑到自己不是很适应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. 记录Qt的一个诡异Bug

    公司的一款项目,在迭代开发阶段,突然发现运行速度越来越慢,界面切换卡顿时间在2秒以上.经过和某个不卡版本的对比,惊奇的发现程序二进制都一模一样,就几个图片资源和脚本不一样.经过差不多一天的排查,发现是 ...

  2. JavaWeb---总结&lpar;一&rpar;JavaWeb开发入门

    一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...

  3. scrollTo &comma; scrollBy区别

    View视图中scrollTo 与scrollBy这两个函数的区别 . 首先 ,我们必须明白在Android View视图是没有边界的,Canvas是没有边界的,只不过我们通过绘制特定的View时对 ...

  4. 现代JavaScript

    1.async(异步)属性以及defer(延迟)属性 2.load事件是在所有资源被完全加载后才触发 3.domready,在DOM加载之后以及资源加载之前被触发,以DOMContentLoaded的 ...

  5. Mysql学习笔记(十四)备份与恢复

    学习内容: 1.数据库的重要数据备份... 2.什么时候需要使用到数据库备份.. 3.如何恢复备份的数据.. 1.备份: 说到备份,相比大家都不应该陌生,比如说我们平时在为我们的电脑重新做系统的时候, ...

  6. 查看使用了那种shell

    cat /etc/shells  root@OpenWrt:/www/cgi-bin# cat /etc/shells/bin/ash

  7. 【算法】欧几里得算法与青蛙约会oj

    欧几里得和扩展欧几里得算法 题目: poj 1061 poj 2142 双六 扩展欧几里得算法详解 先说欧几里得算法:欧几里得算法辗转相除求\(gcd\).求\(a.b\)的\(gcd\),则利用的性 ...

  8. Python 函数(三)

    Python 3 函数 (闭包.装饰器.递归.高阶函数) 一.闭包 内部函数可以引用外部函数的参数和局部变量,当外部函数返回内部函数时,相关参数和变量 都保存在返回的函数中,简单的说,这种内部函数可以 ...

  9. Selenium之Css Selector使用方法

    什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议使用火狐浏览器,下载插件,FireFinder.Fire ...

  10. Linux 的基础命令的操作

    Linux 的基础命令的操作 显示日期和时间:date 显示日历:cal 简单好用的计算机:bc 1.显示日期: date +%Y/%m/%d 2018/09/01 date +%H:%M 14:26 ...