nodejs pm2的简单应用
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的简单应用相关推荐
- nodejs php web,nodejs实现的简单web服务器功能示例
本文实例讲述了nodejs实现的简单web服务器功能.分享给大家供大家参考,具体如下: 前端js代码: $.ajax({ url:'http://192.168.0.114:3000',//服务器地址 ...
- 用nodejs搭建最简单、轻量化的http server
1. 引言 前端程序猿主要关注的是页面,你可能根本就用不到.net,java,php等后台语言. 但是你制作出来的网页总要运行.总要测试吧?--那就免不了用到http server.我先前都是用vis ...
- java 向nodejs 发送请求简单案例
java 向nodejs 发送请求简单案例 最近在做nodejs的东西,一直不明白java如何与nodejs建立连接,下面写了一个简单demo: nodejs端: var http = requir ...
- 用nodejs搭建一个简单的服务器
使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...
- nodejs pm2使用
pm2特点 1.简单方便,部署快. 2.解决nodejs单线程缺点 3.完善的日志 pm2安装及使用 1.安装 npm install -g pm2 2.启动 查看版本 pm2 start app.j ...
- nodejs+express+mongodb简单的例子
简单的介绍下node+express+mongodb这三个东西. node:是运行在服务器端的程序语言,表面上看过去就是javascript一样的东西,但是呢,确实就是服务器语言,个人觉得在一定层次上 ...
- node.js request get 请求怎么拿到返回的数据_从零开始用nodejs写一个简单的静态服务器
nodejs搭建服务器第一步 const http = require("http")const PORT = 8000 const server = http.createSer ...
- nodejs pm2教程(转载)
http://www.cnblogs.com/laien/p/5826080.html 一.简介 pm2是一个带有负载均衡功能的应用进程管理器,类似有Supervisor,forever. 二.安装 ...
- NodeJS+Express+MongoDB 简单实现数据录入及回显展示【Study笔记】
近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思 ...
最新文章
- 表达式树 java_Linq表达式树编译非平凡的对象常量,并以某种方式引用它们
- numpy.argwhere 返回的为索引值的array
- 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程(十五)
- 利用curl命令测试服务端
- 找出重复最多的字符php,javascript获取重复次数最多的字符_javascript技巧
- a律13折线pcm编码例题_a律13折线pcm编码例题
- java点_java常见基础点
- SQLCE 3.5 部署打包
- 源码编译OpenCV卡在ippicv
- php 求 相似 比,php比较相似字符串的方法
- Digital root(数根)
- 【报告分享】2021年中国人工智能产业研究报告:数字经济时代的产业升级探索.pdf(附下载链接)...
- CentOS 5.X MySQL5.5.35 编译的bug
- Windows Service开发点滴20130622
- 获取vue一个对象的所有属性_VUE中computed计算属性和data数据获取的问题
- R 语言 单位根检验
- list to torch
- 控制台报错For input string: ““、empty String
- 电脑突然复制粘贴不了
- 【AI Studio平台基本操作】算力卡的使用获取及有关内容