使用pm2 管理你的node项目

主要特性:

内建负载均衡(使用Node cluster 集群模块)

后台运行

0秒停机重载,我理解大概意思是维护升级的时候不需要停机.

具有Ubuntu和CentOS 的启动脚本

停止不稳定的进程(避免无限循环)

控制台检测

提供 HTTP API

远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )

测试过Nodejs v0.11 v0.10 v0.8版本,兼容CoffeeScript,基于Linux 和MacOS.

安装

npm install -g pm2

用法

$ npm install pm2 -g     # 命令行安装 pm2

$ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js

# 也可以把‘max‘ 参数传递给 start

# 正确的进程数目依赖于Cpu的核心数目

$ pm2 start app.js --name my-api # 命名进程

$ pm2 list               # 显示所有进程状态

$ pm2 monit              # 监视所有进程

$ pm2 logs               #  显示所有进程日志

$ pm2 stop all           # 停止所有进程

$ pm2 restart all        # 重启所有进程

$ pm2 reload all         # 0秒停机重载进程 (用于 NETWORKED 进程)

$ pm2 stop 0             # 停止指定的进程

$ pm2 restart 0          # 重启指定的进程

$ pm2 startup            # 产生 init 脚本 保持进程活着

$ pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)

$ pm2 delete 0           # 杀死指定的进程

$ pm2 delete all         # 杀死全部进程

运行进程的不同方式:

$ pm2 start app.js -i max  # 根据有效CPU数目启动最大进程数目

$ pm2 start app.js -i 3      # 启动3个进程

$ pm2 start app.js -x        #用fork模式启动 app.js 而不是使用 cluster

$ pm2 start app.js -x -- -a 23   # 用fork模式启动 app.js 并且传递参数 (-a 23)

$ pm2 start app.js --name serverone  # 启动一个进程并把它命名为 serverone

$ pm2 stop serverone       # 停止 serverone 进程

$ pm2 start app.json        # 启动进程, 在 app.json里设置选项

$ pm2 start app.js -i max -- -a 23                   #在--之后给 app.js 传递参数

$ pm2 start app.js -i max -e err.log -o out.log  # 启动 并 生成一个配置文件

你也可以执行用其他语言编写的app  ( fork 模式):

$ pm2 start my-bash-script.sh    -x --interpreter bash

$ pm2 start my-python-script.py -x --interpreter python

0秒停机重载:

这项功能允许你重新载入代码而不用失去请求连接。

注意:

仅能用于web应用

运行于Node 0.11.x版本

运行于 cluster 模式(默认模式)

$ pm2 reload all

CoffeeScript:

$ pm2 start my_app.coffee  #这就是全部

PM2准备好为产品级服务了吗?

只需在你的服务器上测试

$ git clone https://github.com/Unitech/pm2.git

$ cd pm2

$ npm install  # 或者 npm install --dev ,如果devDependencies 没有安装

$ npm test

pm2 list

列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次,因为没处理的异常。

pm2 monit

监视每个node进程的CPU和内存的使用情况。

时间: 2024-10-12 22:58:40

使用pm2 管理你的node项目的相关文章

学习使用PM2管理nodejs进程

在项目中,偶尔对命令会忘记一下,所以在此记录下pm2的常用命令. 1. pm2是什么?pm2 是一个带有负载均衡的Node应用的进程管理器, 它能够管理Node应用,还能够对应用的运行状态进行监控. 2. pm2 安装及使用 安装命令如下: npm install pm2 -g 比如说 我在项目中有一个 app.js 启动程序,代码如下: const Koa = require('koa'); const app = new Koa(); app.use(async (ctx, next) =>

Linux(Centos)服务器配置node项目

以阿里云服务器,CentOS系统为例 上一节已经提到怎么安装nodejs,以下是以vue项目为例 步骤: (1)首先安装vue脚手架@vue/cli, 官网参考 vue-cli3.x 1 [[email protected] ~]# npm i @vue/cli -g vue-cli2.x 1 [[email protected] ~]# npm install -g @vue/cli-init 默认文件会安装之前下载的node目录node/node_module, 执行命令会安装到node/b

node项目自动化部署--基于Jenkins,Docker,Github(3)自动化部署

GitHub仓库 由于现在的代码基本上都是多人合作开发,所以肯定会用到像 git 这样的版本控制工具 所以这里使用 GitHub 来做一个演示 首先我们需要在github上新建一个仓库 点击New来新建一个仓库 输入一个名字 以及描述后点击 create 然后将代码上传到GitHub上 这里我上传的是一个简单的 hello world 的demo 到这里要部署的代码就准备完成了,接下来需要编写 Dockerfile 来告诉 docker 该怎么打包我们的项目 Dockerfile编写 首先我们在

使用屏幕pm2管理服务器应用

引言:直接用命令行窗口启动应用,一旦关闭命令行窗口,远程访问也随即被关闭,因此,使用pm2管理服务器应用,可以避免这个问题. 1.在服务器中安装 pm2:npm i pm2 -g(全局安装,只要安装了node环境便可直接运行该命令) 2.启动项目:pm2 start 脚本 --name 自定义名称(如:pm2 start .\app.js --name myweb) 3.查看运行项目:pm2 ls 4.重启项目:pm2 restart 自定义名称 5.停止项目:pm2 stop 自定义名称 6.

Node项目通过cluster API充分利用多核CPU

默认的一个Node项目只有一个Master进程,通过cluster API来管理此进程,可以为每核增加一个worker,就叫分支进程吧 示例 var cluster = require('cluster'); var http = require('http'); //获取服务器的CPU核数 var numCPUs = require('os').cpus().length; if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) {

将node项目部署到linux系统上

1.准备工作,电脑上需要有xshell(远程连接服务器).xftp(上传文件到服务器上).下载node安装包(linux版) 2.使用xshell连接服务器后,进入根目录cd /   创建文件夹名mkdir opt  进入opt目录中 cd /opt 3.ctrl + alt + f 打开xftp ,左侧是Windows目录 右侧界面linux目录把刚才的node安装包拖入到opt项目中,本地应用项目也一起拖放到这个目录中 4.解压缩node安装包 tar -xzvf node-v7.5.0-l

vue+express+mysql项目总结(node项目部署阿里云通用)

原文发布于我的个人博客上:原文点这里 ??前面经历千辛万苦,终于把博客的所有东西都准备好了,现在就只等部署了.下面我介绍下我的部署过程: 一.购买服务器和域名 ??如果需要域名(不用域名通过ip也可以访问,虽然不方便,但可以节约一年几十块钱的域名费用,哈哈),建议提前购买,因为域名备案的时间比较长. ??我是在阿里云上购买的服务器和域名,服务器是在阿里云手机端上购买的活动产品,半年¥9.9(半年后续费好像就是原价了!!!下面是购买的截图),域名是¥55一年(.com比较贵),点这里去挑选合适你的

请问这个git上开源的node项目怎样才能在windows用Npm跑起来

这个项目https://github.com/wechaty/we...以前都是用人家弄好的手脚架搞得es6,搞了2天搞起了es6还报错,错误信息在下面,然后我想请教大神:1我到底应该怎么弄才能在windows上跑起来,2还有如果要学Docker,有没有什么好的学习docker的中文教程?3还有里面都是.ts结尾的是什么鬼?要学会如何用这个应该去学什么东西?在哪里学比较好? E:\weixin\wechaty>npm run dev [email protected] dev E:\weixin

WAS 管理节点和node同步报错

同步WAS管理节点和node报如下错误: [17-5-28 20:42:04:546 CST] 00000082 NodeSync      E   ADMS0005E: The system is unable to generate synchronization request: javax.management.JMRuntimeException: ADMN0022E: 由于凭证不足或凭证为空,无法对 ConfigRepository MBean 的 getRepositoryEpoc