2019独角兽企业重金招聘Python工程师标准>>>

一、简介

pm2是一个带有负载均衡功能的应用进程管理器,类似有Supervisor,forever,详细参数见官网:http://pm2.keymetrics.io

二、安装

Linux Binaries下载地址:https://nodejs.org/dist

cd oneinstack/src
wget https://nodejs.org/dist/v4.2.4/node-v4.2.4-linux-x64.tar.gz
tar xzf node-v4.2.4-linux-x64.tar.gz
cp node-v4.2.4-linux-x64/bin/node /usr/local/bin/
cp -R node-v4.2.4-linux-x64/lib/node_modules /usr/local/lib/
ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
npm install pm2@latest -g                 #安装最新版本pm2模块

PS: 如果你的主机无法连接公网,先找到能连公网的主机安装上面的方法安装pm2,然后拷贝到你要安装的主机,拷贝如下目录:

/usr/local/bin/node
/usr/local/lib/node_modules

再创建相关软连接即可

三、PM2常用命令

假设你现在已经写好了一个app.js的文件,需要启动,你可以使用pm2进行管理

1. 启动

# pm2 start app.js
# pm2 start app.js --name my-api       #my-api为PM2进程名称
# pm2 start app.js -i 0                #根据CPU核数启动进程个数
# pm2 start app.js --watch             #实时监控app.js的方式启动,当app.js文件有变动时,pm2会自动reload

2. 查看进程

# pm2 list
# pm2 show 0 或者 # pm2 info 0         #查看进程详细信息,0为PM2进程id

3. 监控

# pm2 monit

4. 停止

# pm2 stop all                        #停止PM2列表中所有的进程
# pm2 stop 0                          #停止PM2列表中进程为0的进程

5. 重载

# pm2 reload all                      #重载PM2列表中所有的进程
# pm2 reload 0                        #重载PM2列表中进程为0的进程

6. 重启

# pm2 restart all                     #重启PM2列表中所有的进程
# pm2 restart 0                       #重启PM2列表中进程为0的进程

7. 删除PM2进程

# pm2 delete 0                        #删除PM2列表中进程为0的进程
# pm2 delete all                      #删除PM2列表中所有的进程

8. 日志操作

# pm2 logs [--raw]                    #Display all processes logs in streaming
# pm2 flush                           #Empty all log file
# pm2 reloadLogs                      #Reload all logs

9. 升级PM2

# npm install pm2@lastest -g          #安装最新的PM2版本
# pm2 updatePM2                       #升级pm2

10. 更多命令参数请查看帮助

# pm2 --help

四、PM2目录结构

默认的目录是:当前用于的家目录下的.pm2目录(此目录可以自定义,请参考:五、自定义启动文件),详细信息如下:

$HOME/.pm2                   #will contain all PM2 related files
$HOME/.pm2/logs              #will contain all applications logs
$HOME/.pm2/pids              #will contain all applications pids
$HOME/.pm2/pm2.log           #PM2 logs
$HOME/.pm2/pm2.pid           #PM2 pid
$HOME/.pm2/rpc.sock          #Socket file for remote commands
$HOME/.pm2/pub.sock          #Socket file for publishable events
$HOME/.pm2/conf.js           #PM2 Configuration

五、自定义启动文件

创建一个test.json的示例文件,格式如下:

{"apps":{"name": "test","cwd": "/data/wwwroot/nodejs","script": "./test.sh","exec_interpreter": "bash","min_uptime": "60s","max_restarts": 30,"exec_mode" : "cluster_mode","error_file" : "./test-err.log","out_file": "./test-out.log","pid_file": "./test.pid""watch": false}
}

参数说明:

apps:json结构,apps是一个数组,每一个数组成员就是对应一个pm2中运行的应用
name:应用程序的名称
cwd:应用程序所在的目录
script:应用程序的脚本路径
exec_interpreter:应用程序的脚本类型,这里使用的shell,默认是nodejs
min_uptime:最小运行时间,这里设置的是60s即如果应用程序在60s内退出,pm2会认为程序异常退出,此时触发重启max_restarts设置数量
max_restarts:设置应用程序异常退出重启的次数,默认15次(从0开始计数)
exec_mode:应用程序启动模式,这里设置的是cluster_mode(集群),默认是fork
error_file:自定义应用程序的错误日志文件
out_file:自定义应用程序日志文件
pid_file:自定义应用程序的pid文件
watch:是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。

六、实例展示

已上面的test.json为例

# cat > /data/wwwroot/nodejs/test.sh <> 1.logsleep 5
done
EOF

然后执行如下命令:

# chmod +x test.sh      #添加执行权限
# pm2 start test.json    #启动,如下图:# pm2 list    #查看pm2进程,如下图:

转载于:https://my.oschina.net/zhiqiangwang/blog/1626228

nodejs pm2的简单应用相关推荐

  1. nodejs php web,nodejs实现的简单web服务器功能示例

    本文实例讲述了nodejs实现的简单web服务器功能.分享给大家供大家参考,具体如下: 前端js代码: $.ajax({ url:'http://192.168.0.114:3000',//服务器地址 ...

  2. 用nodejs搭建最简单、轻量化的http server

    1. 引言 前端程序猿主要关注的是页面,你可能根本就用不到.net,java,php等后台语言. 但是你制作出来的网页总要运行.总要测试吧?--那就免不了用到http server.我先前都是用vis ...

  3. java 向nodejs 发送请求简单案例

    java  向nodejs 发送请求简单案例 最近在做nodejs的东西,一直不明白java如何与nodejs建立连接,下面写了一个简单demo: nodejs端: var http = requir ...

  4. 用nodejs搭建一个简单的服务器

    使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...

  5. nodejs pm2使用

    pm2特点 1.简单方便,部署快. 2.解决nodejs单线程缺点 3.完善的日志 pm2安装及使用 1.安装 npm install -g pm2 2.启动 查看版本 pm2 start app.j ...

  6. nodejs+express+mongodb简单的例子

    简单的介绍下node+express+mongodb这三个东西. node:是运行在服务器端的程序语言,表面上看过去就是javascript一样的东西,但是呢,确实就是服务器语言,个人觉得在一定层次上 ...

  7. node.js request get 请求怎么拿到返回的数据_从零开始用nodejs写一个简单的静态服务器

    nodejs搭建服务器第一步 const http = require("http")const PORT = 8000 const server = http.createSer ...

  8. nodejs pm2教程(转载)

    http://www.cnblogs.com/laien/p/5826080.html 一.简介 pm2是一个带有负载均衡功能的应用进程管理器,类似有Supervisor,forever. 二.安装 ...

  9. NodeJS+Express+MongoDB 简单实现数据录入及回显展示【Study笔记】

    近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思 ...

最新文章

  1. 表达式树 java_Linq表达式树编译非平凡的对象常量,并以某种方式引用它们
  2. numpy.argwhere 返回的为索引值的array
  3. 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程(十五)
  4. 利用curl命令测试服务端
  5. 找出重复最多的字符php,javascript获取重复次数最多的字符_javascript技巧
  6. a律13折线pcm编码例题_a律13折线pcm编码例题
  7. java点_java常见基础点
  8. SQLCE 3.5 部署打包
  9. 源码编译OpenCV卡在ippicv
  10. php 求 相似 比,php比较相似字符串的方法
  11. Digital root(数根)
  12. 【报告分享】2021年中国人工智能产业研究报告:数字经济时代的产业升级探索.pdf(附下载链接)...
  13. CentOS 5.X MySQL5.5.35 编译的bug
  14. Windows Service开发点滴20130622
  15. 获取vue一个对象的所有属性_VUE中computed计算属性和data数据获取的问题
  16. R 语言 单位根检验
  17. list to torch
  18. 控制台报错For input string: ““、empty String
  19. 电脑突然复制粘贴不了
  20. 【AI Studio平台基本操作】算力卡的使用获取及有关内容

热门文章

  1. 显式Intent 和隐式 Intent 的区别
  2. Laravel 深入核心系列教程
  3. 华为交换机S5700系列配置通过STelnet登录设备示例
  4. mysql 修改最大连接数
  5. 非root用户安装软件
  6. 考虑用静态工厂方法代替构造器
  7. 制作U盘启动的并可保持更改更新和设置的BT4最终版完全手册
  8. artemis服务_artemis小结
  9. textView 父视图alpha设置不影响子视图
  10. androidpn的学习研究(三)androidpn-server服务端几个类说明