使用pm2管理node服务
最近在做项目的时候有个需求,需要将nodeJS写的接口部署到服务器上,并且要求服务器重启后该node进程也会自动启动,我在搜索相关资料后选择了使用pm2进程管理工具。
pm2管理工具相关优势:
(1)动态监控文件变动,0秒热启动
(2)对 CPU 进行负载均衡
(3)监控 CPU、内存的使用状况
(4)自动重启异常服务
当然最主要还是看中了它的自动重启功能。
那我们该如何利用pm2管理工具管理我们的node服务呢?
1、安装node
直接去官网下载稳定版后一路next安装即可。
2、安装完node后,可以在cmd命令窗口输入node --version查看当前node版本以确认是否安装成功。
3、利用node自带的npm包管理工具(高版本node自带)下载pm2在全局。
4、安装完成后cd到nodeJS文件所在的文件夹,然后输入命令pm2 start index.js,也可以在后面加上--watch进行实时监听,可以实现异常服务自动重启,以及修改nodejs文件时自动更新。
5、这样我们的node服务已经启动成功了,可以在命令行输入pm2 list查看当前运行中的进程。
6、在此再列举一些常用的pm2命令供大家参考:
pm2 stop xxx :结束某项进程
pm2 stop all :结束所有进程
pm2 restart xxx :重启某项进程
pm2 delete xxx :删除某项进程
那我们该如何让自己的node服务在服务器重启后也自动启动呢?
1、执行命令pm2 startup。 即在/etc/init.d/目录下生成pm2-root的启动脚本,且自动将pm2-root设为服务。
2、执行命令pm2 save。会将当前pm2所运行的应用保存在/root/.pm2/dump.pm2下,当开机重启时,运行pm2-root服务脚本,并且到/root/.pm2/dump.pm2下读取应用并启动。
3、自动重启功能完成!
以上就是最近我使用pm2进程管理工具的一些心得,若有不对的地方欢迎指正~
使用pm2管理node服务相关推荐
- PM2管理node.js
什么是PM2 一句话,概括:Advanced, production process manager for Node.js 说白了,进程管理,高级的,看他怎么高级了: 内建负载均衡Clusterin ...
- forever 管理node服务
使用node作为服务端搭建项目时就会遇到一个问题,启动服务是往往是在终端执行类似命令: node ./app.js 当客户连接断开,服务也随之停止. 然后通过Ctrl + c来关闭服务. 然而当终端不 ...
- Ubuntu pm2 重启自动启动服务
出现重启后,pm2的 node 服务都没启动,于是乎设置重启也能自动重启服务. $ pm2 startup [PM2] Init System found: systemd [PM2] To setu ...
- Node.js微服务 2 :基于Seneca和PM2构建Node.js微服务
2.1 选择Node.js的理由 如今,Node.js已经成为国际上许多科技公司的首选方案.特别的,对于在服务器端需要非阻塞特性(例如Web Sockets)的场景,Node.js俨然成了最好的选择. ...
- 用pm2管理一个或多个node.js应用
0.目标 在<http-proxy反向代理以调度服务器各app> 中,我们谈到了域名解析过来后应用调度问题:除此之外,在部署了多个node.js应用后,我们还会面临多个应用管理不方便.需要 ...
- Node.js:pm2管理进程启动npm run dev和开机自启
Node.js Production Process Manager with a built-in Load Balancer. 文档 官网 https://pm2.keymetrics.io/ g ...
- 使用node的pm2管理相关进程
写在前面问题: 如何开机自启动? 如何自动拉起挂掉的进程 ? 如何做到session关掉后session的子进程还正常运行? 基础知识学习 请先阅读 http://www.ruanyifeng.com ...
- 宝塔部署node项目_SFF一站式node服务管理平台实践
导语 本文阐述了基于Serverless搭建一站式node服务管理平台过程中,在开发框架.日志.监控.部署等方面遇到的问题及技术方案. 背景 Serverless是一种无服务器架构,它的弹性伸缩,按需 ...
- PM2自动重启node服务
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单. 全局安装,简直不能更简单. npm install -g pm2 用 ...
最新文章
- php设置id递增,php实现雪花算法(ID递增)
- Matlab中fft作频谱横纵坐标
- 排序算法整理(第十五周实践项目)
- Struts自定义拦截器拦截器工作原理
- SAP UI5 js file will be executed immediately after downloaded successfully
- mysql_result函数用不了_mysql_result()函数怎么在PHP中使用
- 微信飞机大战游戏开发
- SQLyog数据库导出
- 2021宿州市地区高考成绩排名查询,2021年宿州所有小学名单及排名,宿州最好的小学有哪些...
- 斯坦福大学自然语言处理第四课“语言模型(Language Modeling)
- HZNU-1480-The Gougu Theorem【勾股数】
- 一块硬盘装了黑苹果 一块硬盘装了win7_自己组装一台“iMac”是什么体验(下):AMD 平台也能吃上黑苹果...
- EV代码签名证书可以自助续签吗?
- MSI Z390主板双SSD+HDD,win10系统下安装Ubuntu18.04LTS双系统总结
- 【opencv四】利用opencv读取显示视频
- 小度的进攻,智能音箱的“二战”
- 二十九 我在软件园的那些日子里
- 如何用Qt绘制一颗好看的二叉树
- linux SPI驱动开发
- Lake Shore 625 型超导磁体电源
热门文章
- MinDoc文档管理系统在宝塔环境安装教程
- thymeleaf 模板引擎
- 编写方法 peak(int[][] matix),显示matix中的所有局部最大值。
- 【原创】iStyleFace(仿iphone) V1.01 Build20101002发布
- Java后端接口开发详细教程
- 当可解释人工智能遇上知识图谱
- (附源码)基于SSM框架的众筹平台设计 毕业设计211755
- 01-小程序基础概念
- 国内首家公安大数据交互式微信服务平台上线
- 噪声的频谱分析的重要意义_噪声源识别是什么?具备很重要的现实意义