在项目中,偶尔对命令会忘记一下,所以在此记录下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) => {
ctx.response.body = 'hello world';
await next();
}); app.listen(3000);
console.log('app started at port 3000...');

然后每次启动下该本地项目服务,我们需要 node app.js 这样启动下,如下所示:

然后在浏览器中访问 http://localhost:3000/ 就可以打印如下效果了:

但是现在我们有pm2了,我们可以使用pm2来管理我们的node应用进程进行管理。我们只需要运行 pm2 start app.js 即可;如下:

然后在浏览器中访问 http://localhost:3000/ 也一样能看到效果。

下面是pm2 常用的命令:

$ npm install pm2 -g          // pm2 命令安装
$ pm2 start app.js -i 2 // 后台运行pm2,启动2个app.js
$ pm2 start app.js --name xxx // 命名进程为xxx

比如如下所示:

$ pm2 list            // 显示所有进程状态
$ pm2 monit // 监视所有进程
$ pm2 logs // 显示所有进程日志
$ pm2 stop all // 停止所有进程
$ pm2 restart all // 重启所有进程
$ pm2 reload all // 0秒停机重载进程
$ pm2 stop 0 // 停止指定的进程
$ pm2 restart 0 // 重启指定的进程
$ pm2 startup // 产生init脚本,保持进程活着
$ pm2 delete 0 // 杀死指定的进程
$ pm2 delete all // 杀死全部进程
$ pm2 web // 监控所有被pm2管理的进程

运行进程的不同方式:

$ 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 --name xxxx // 启动一个进程并把它命名为 xxxx
$ 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 // 启动并生成一个配置文件

学习使用PM2管理nodejs进程的更多相关文章

  1. 使用PM2管理nodejs进程分享

    摘要:pm2 是一个带有负载均衡功能的Node应用的进程管理器.本文主要介绍了详解使用PM2管理nodejs进程,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧,希望能帮助 ...

  2. 使用 PM2 管理nodejs进程

    pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. 它非常适合IaaS结构,但不要把它 ...

  3. 使用pm2管理nodejs应用

    PM2 is a production process manager for Node.js applications with a built-in load balancer. It allow ...

  4. PM2 管理nodejs项目

    pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. 它非常适合IaaS结构,但不要把它 ...

  5. nodeJS进程管理器pm2

    pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...

  6. Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用

    nodejs安装:https://www.cnblogs.com/loaderman/p/11596661.html nodejs 进程管理器 pm2 的使用 PM2 是一款非常优秀的 Node 进程 ...

  7. Linux第六周学习总结——进程额管理和进程的创建

    Linux第六周学习总结--进程额管理和进程的创建 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/cour ...

  8. pm2使用 node 进程管理

    1.问题 使用阿里云服务器时遇到一个问题,就是只能开一个命令窗口,加入运行node服务,只能起一个服务,不能启多个服务.pm2可以解决这个问题. 2.pm2简介 官网:https://pm2.keym ...

  9. UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数

    lienhua342014-10-12 当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号.父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序).对于这 ...

随机推荐

  1. CSS gradient渐变之webkit核心浏览器下的使用以及实例

    一.关于渐变 渐变是一种应用于平面的视觉效果,可以从一种颜色逐渐地转变成另外一种颜色,故可以创建类似于彩虹的效果渐变可以应用在任何可以使用图片的地方.例如,您可以指定一个这么一个渐变:顶部的颜色是红色 ...

  2. Mysql sql 功能分类

    分类 DDL:数据定义语言,用于定义数据库对象,比如创建表,列,库等 DML:数据操作语言,用于添加.删除.修改数据 DQL:数据查询语言,用于查询(结果集是虚拟表,放在内存中) DCL:数据控制语言 ...

  3. Elasticsearch Search APIs

    Elasticsearch Search APIs By:授客 QQ:1033553122 1. 搜索 1 在单个索引的所有类型中搜索 1 在单个索引的指定类型中搜索 1 在多个指定的索引中搜索 1 ...

  4. Html富文本编辑器

    本文推荐两款简单的富文本编辑器[KindEditor,NicEdit]用于获得所见即所得的编辑效果,本文仅供学习分享使用,如有不足之处,还请指正. 概述 这两款编辑器都是采用JavaScript编写, ...

  5. Kotlin入门(27)文件读写操作

    Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通过输入输出流中转,致使文件读写操作颇为繁琐.因此,开发者通常得自己重新封装一个文件存取的工具类,以便在日常开发 ...

  6. 【爬虫】使用xpath与lxml移除特定标签

    移除标签的两种方式 可以用xpath定位 for bad in html.xpath(".//table"): bad.getparent().remove(bad) 参考:htt ...

  7. php post接口,注册功能

    功能描述:仅输入手机号和密码,实现注册功能.手机号有简单的验证,不可重复输入,否则会报500错误. 在使用 RestClient 进行post测试时,如果你把参数放在 [Headers]区块了,那么, ...

  8. Keras实现卷积神经网络

    # -*- coding: utf-8 -*- """ Created on Sun Jan 20 11:25:29 2019 @author: zhen "& ...

  9. 使用fiddler对手机上的程序进行抓包

    用fiddler对手机上的程序进行抓包,网上有很多的资料,这里写一下来进行备用.   前提: 1.必须确保安装fiddler的电脑和手机在同一个wifi环境下 备注:如果电脑用的是台式机,可以安装一个 ...

  10. MyBatis笔记----@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class

    使用MyBatis 3.4.1或者其以上版本 @Intercepts({ @Signature(type = StatementHandler.class,  method = "prepa ...