当前位置: 首页 > news >正文

建设网站费用预算新闻热点事件2024最新

建设网站费用预算,新闻热点事件2024最新,网站开发客户哪里找,开发一款游戏软件需要多少钱【NodeJs-5天学习】第四天存储篇⑤ ——PM2,node.js应用进程管理器1. 前言2. 官方说明3. 安装PM24. PM2常用命令4.1 启动命令4.2 重新启动命令4.3 热重载命令4.4 停止命令4.5 删除命令4.6 查看进程运行状态4.4 显示某一个进程的具体信息4.8 显示日志信息4.9 终端监控…

【NodeJs-5天学习】第四天存储篇⑤ ——PM2,node.js应用进程管理器

    • 1. 前言
    • 2. 官方说明
    • 3. 安装PM2
    • 4. PM2常用命令
      • 4.1 启动命令
      • 4.2 重新启动命令
      • 4.3 热重载命令
      • 4.4 停止命令
      • 4.5 删除命令
      • 4.6 查看进程运行状态
      • 4.4 显示某一个进程的具体信息
      • 4.8 显示日志信息
      • 4.9 终端监控器
      • 4.10 开机自启动
      • 4.11 综合命令
    • 5. PM2配置文件
    • 6. PM2 API方式接入(可选)
    • 7. 总结

面向读者群体

  • ❤️ 电子物联网专业同学,想针对硬件功能构造简单的服务器,不需要学习专业的服务器开发知识 ❤️
  • ❤️ 业余爱好物联网开发者,有简单技术基础,想针对硬件功能构造简单的服务器❤️
  • ❤️ 本篇创建记录 2023-03-12 ❤️
  • ❤️ 本篇更新记录 2023-03-12 ❤️

技术要求

  • 有HTML、CSS、JavaScript基础更好,当然也没事,就直接运行实例代码学习

专栏介绍

  • 通过简短5天时间的渐进式学习NodeJs,可以了解到基本的服务开发概念,同时可以学习到npm、内置核心API(FS文件系统操作、HTTP服务器、Express框架等等),最终能够完成基本的物联网web开发,而且能够部署到公网访问。

🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝

1. 前言

之前很多情况下我们启动nodejs项目都是通过node命令去启动,但是这种方式一般也不是很稳定安全(如果直接通过node app来启动,如果报错了可能直接停在整个运行)。这时候就需要一个node进程管理工具(也叫作应用管理,像我们之前用的nodemon,更偏向于用于开发中服务热加载),可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。

这就是我们本篇需要介绍到的PM2管理器。

在部署 【ESP 保姆级教程】疯狂Node.js服务器篇 ——nodejs应用部署到腾讯云,实现公网访问 中,我们就涉及到PM2的使用。

2. 官方说明

  • PM2官方英文说明

在这里插入图片描述
保证你的NodeJS程序 24小时正常运行。

3. 安装PM2

cmd上面输入命令:

npm install pm2 -g

在这里插入图片描述
这时候我们就可以用PM2来接管原来的node启动命令了。这里我们随便启动一个原有的NodeJs项目:
在这里插入图片描述
pm2安装好后,会自动创建下面目录。
在这里插入图片描述
核心几个目录文件信息:

  • logs 包含所有管理中的NodeJs应用的日志信息(这样就方便我们可以看到对应应用的日志信息,方便排查问题)
    在这里插入图片描述
    在这里插入图片描述

  • pids 包含所有应用的进程id
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    通过cmd命令qprocess PID编号(这里是qprocess 19292) 查看一下:
    在这里插入图片描述
    信息能对上。

  • pm2.log 这里是PM2管理器自己本身的日志信息
    在这里插入图片描述

  • pm2.pid 这里是PM2管理器自己本身的进程ID

在这里插入图片描述
在这里插入图片描述

4. PM2常用命令

PM2命令不多,我们来了解一些比较有用的。

4.1 启动命令

最基本的启动命令:

pm2 start app.js

也可以加上一些参数,包括:

  • --watch 监听应用目录的变化,一旦发生变化,自动重启。
  • --ignore-watch 排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如 pm2 start env.js --watch --ignore-watch="node_modules" 不监听node_modules目录变化。
  • --name <app_name> 自定义一个应用名称。查看应用信息的时候可以用到。
  • -o --output <path> 标准输出日志文件的路径。建议不改
  • -e --error <path>错误输出日志文件的路径。建议不改

完整命令行参数:直接查看官方文档

# Specify an app name
--name <app_name># Watch and Restart app when files change
--watch# Set memory threshold for app reload
--max-memory-restart <200MB># Specify log file
--log <log_path># Pass extra arguments to the script
-- arg1 arg2 arg3# Delay between automatic restarts
--restart-delay <delay in ms># Prefix logs with time
--time# Do not auto restart app
--no-autorestart# Specify cron for forced restart
--cron <cron_pattern># Attach to application log
--no-daemon

另外,也可以通过配置yml文件启动。在项目根目录创建一个yml文件:
在这里插入图片描述
输入内容:

apps:- script : index.jsname : 'app'watch: true

执行命令:

pm2 start app.yml
在这里插入图片描述

4.2 重新启动命令

pm2 restart app_name

这里重启一下我们上面刚刚打开的应用,它的名字使用了默认,是index
在这里插入图片描述

注意,这个命令只会重启在PM2管理记录里面的应用。如果通过delete命令去操作无法重启成功。

4.3 热重载命令

pm2 reload app_name

这里热重载一下我们上面刚刚打开的应用,它的名字使用了默认,是index
在这里插入图片描述

注意,这个命令只会热重载在PM2管理记录里面的应用。如果通过delete命令去操作无法重启成功。

4.4 停止命令

停止特定的应用。可以先通过pm2 list获取应用的名字(–name指定的)或者进程id

  • pm2 stop app_name|app_id

停止所有的应用。

  • pm2 stop all

这里我们分别停止单个应用,它的名字使用了默认,是index 以及停止全部应用。
在这里插入图片描述

4.5 删除命令

删除特定的应用。可以先通过pm2 list获取应用的名字(–name指定的)或者进程id

  • pm2 delete app_name|app_id

停止所有的应用。

  • pm2 delete all

在这里插入图片描述
在这里插入图片描述

对比停止命令,删除命令更加彻底,直接连记录也删除了。

4.6 查看进程运行状态

  • pm2 [list|ls|status]

在这里插入图片描述

4.4 显示某一个进程的具体信息

  • pm2 describe app_id

在这里插入图片描述

4.8 显示日志信息

  • pm2 logs [–lines n]

在这里插入图片描述

4.9 终端监控器

  • pm2 monit

在这里插入图片描述

4.10 开机自启动

  • 保存当前进程状态

pm2 save
在这里插入图片描述

  • 生成开机自启动脚本

pm2 startup
在这里插入图片描述
在win系统上执行这个命令行是有问题的,使用其他库生成自启动脚本。

  • pm2-windows-service
  • pm2-windows-startup

输入命令行:
npm install pm2-windows-startup -g
在这里插入图片描述
输入命令行:
pm2-startup install
在这里插入图片描述

pm2 将在启动时恢复已保存的进程

  • 移除启动脚本

pm2 unstartup(window系统用pm2-startup uninstall )
在这里插入图片描述

4.11 综合命令

# Fork mode
pm2 start app.js --name my-api # Name process# Cluster mode
pm2 start app.js -i 0        # Will start maximum processes with LB depending on available CPUs
pm2 start app.js -i max      # Same as above, but deprecated.
pm2 scale app +3             # Scales `app` up by 3 workers
pm2 scale app 2              # Scales `app` up or down to 2 workers total# Listingpm2 list               # Display all processes status
pm2 jlist              # Print process list in raw JSON
pm2 prettylist         # Print process list in beautified JSONpm2 describe 0         # Display all information about a specific processpm2 monit              # Monitor all processes# Logspm2 logs [--raw]       # Display all processes logs in streaming
pm2 flush              # Empty all log files
pm2 reloadLogs         # Reload all logs# Actionspm2 stop all           # Stop all processes
pm2 restart all        # Restart all processespm2 reload all         # Will 0s downtime reload (for NETWORKED apps)pm2 stop 0             # Stop specific process id
pm2 restart 0          # Restart specific process idpm2 delete 0           # Will remove process from pm2 list
pm2 delete all         # Will remove all processes from pm2 list# Miscpm2 reset <process>    # Reset meta data (restarted time...)
pm2 updatePM2          # Update in memory pm2
pm2 ping               # Ensure pm2 daemon has been launched
pm2 sendSignal SIGUSR2 my-app # Send system signal to script
pm2 start app.js --no-daemon
pm2 start app.js --no-vizion
pm2 start app.js --no-autorestart

这些命令都可以输入到命令行看看效果。

5. PM2配置文件

以上我们都是通过命令行一句句输入,那么肯定会考虑如果有一个配置文件直接执行会不会更好。这就用到了ecosystem.config.js:文件。

官方文档参考:https://pm2.keymetrics.io/docs/usage/application-declaration/

输入命令

pm2 init simple

会在当前项目根目录下生成一个 ecosystem.config.js 文件。

在这里插入图片描述

module.exports = {apps : [{name   : "app1",script : "./index.js"}]
}

这里就定义应用名字,和执行脚本的启动文件(和我们上面通过yml文件启动配置一样)。接下来就可以用以下命令代替原先的一些操作命令。

# Start all applications
pm2 start ecosystem.config.js# Stop all
pm2 stop ecosystem.config.js# Restart all
pm2 restart ecosystem.config.js# Reload all
pm2 reload ecosystem.config.js# Delete all
pm2 delete ecosystem.config.js

注意,这里可以和命令行对比。

6. PM2 API方式接入(可选)

上面说的都是通过命令行接入,实际上PM2也支持以NodeJS项目 api的方式接入。喜欢的朋友可以创建一个类似于PM2管理者角色的项目来维护所有项目状态。

参考官方文档:pm2-doc-single-page

const pm2 = require('pm2')pm2.connect(function(err) {if (err) {console.error(err)process.exit(2)}pm2.start({script    : 'api.js',name      : 'api'}, function(err, apps) {if (err) {console.error(err)return pm2.disconnect()}pm2.list((err, list) => {console.log(err, list)pm2.restart('api', (err, proc) => {// Disconnects from PM2pm2.disconnect()})})})
})

学习的时候我们直接对照命令行来看即可。

7. 总结

本篇主要学习一下 PM2这个 node.js应用进程管理工具,特别是针对比较多NodeJS项目运行时,我们如何做到更加合理去管理运行状态。这里只是简单介绍一下,抛砖引玉,深入的学习还请直接阅读官方文档。


文章转载自:
http://ceres.wqfj.cn
http://maquette.wqfj.cn
http://circumvolute.wqfj.cn
http://proportion.wqfj.cn
http://suctorious.wqfj.cn
http://mamillated.wqfj.cn
http://procession.wqfj.cn
http://picket.wqfj.cn
http://hoofbound.wqfj.cn
http://dualist.wqfj.cn
http://ariot.wqfj.cn
http://zooblast.wqfj.cn
http://reproof.wqfj.cn
http://tuxedo.wqfj.cn
http://ascocarp.wqfj.cn
http://awfulness.wqfj.cn
http://whenabouts.wqfj.cn
http://corned.wqfj.cn
http://cremate.wqfj.cn
http://champleve.wqfj.cn
http://growly.wqfj.cn
http://thoracostomy.wqfj.cn
http://perugia.wqfj.cn
http://rodriguan.wqfj.cn
http://necrophilia.wqfj.cn
http://civet.wqfj.cn
http://broadway.wqfj.cn
http://tbm.wqfj.cn
http://namma.wqfj.cn
http://pinfall.wqfj.cn
http://leucoblast.wqfj.cn
http://electroculture.wqfj.cn
http://rainmaking.wqfj.cn
http://haemoglobinuria.wqfj.cn
http://aeroallergen.wqfj.cn
http://existentialist.wqfj.cn
http://candied.wqfj.cn
http://depilitant.wqfj.cn
http://tumbleweed.wqfj.cn
http://nutate.wqfj.cn
http://odorously.wqfj.cn
http://bookseller.wqfj.cn
http://antibusing.wqfj.cn
http://taw.wqfj.cn
http://svalbard.wqfj.cn
http://athanasy.wqfj.cn
http://feculent.wqfj.cn
http://interlap.wqfj.cn
http://unprepared.wqfj.cn
http://sensual.wqfj.cn
http://seducement.wqfj.cn
http://zebulon.wqfj.cn
http://counterplan.wqfj.cn
http://monotype.wqfj.cn
http://laparectomy.wqfj.cn
http://hostility.wqfj.cn
http://phonography.wqfj.cn
http://colourcast.wqfj.cn
http://torsibility.wqfj.cn
http://numbskull.wqfj.cn
http://pianette.wqfj.cn
http://bicomponent.wqfj.cn
http://velleity.wqfj.cn
http://bobble.wqfj.cn
http://stethoscope.wqfj.cn
http://thorntail.wqfj.cn
http://postclitic.wqfj.cn
http://schizothymia.wqfj.cn
http://tritiate.wqfj.cn
http://gadfly.wqfj.cn
http://sharebroker.wqfj.cn
http://resurrect.wqfj.cn
http://incommensurable.wqfj.cn
http://dysteleological.wqfj.cn
http://confirmatory.wqfj.cn
http://jejunectomy.wqfj.cn
http://oxyhydrogen.wqfj.cn
http://inez.wqfj.cn
http://pulpit.wqfj.cn
http://octanol.wqfj.cn
http://palatodental.wqfj.cn
http://waggery.wqfj.cn
http://chevet.wqfj.cn
http://housecraft.wqfj.cn
http://fboa.wqfj.cn
http://poorish.wqfj.cn
http://gormandize.wqfj.cn
http://metencephalic.wqfj.cn
http://harmfully.wqfj.cn
http://quadrangled.wqfj.cn
http://bookable.wqfj.cn
http://naussie.wqfj.cn
http://haecceity.wqfj.cn
http://antileukemia.wqfj.cn
http://apocrine.wqfj.cn
http://blunderbuss.wqfj.cn
http://udal.wqfj.cn
http://piecrust.wqfj.cn
http://biff.wqfj.cn
http://pillbox.wqfj.cn
http://www.hrbkazy.com/news/94199.html

相关文章:

  • 何炅做的代言网站最近的新闻有哪些
  • 要做未来科技的网站怎么做关键词搜索量查询
  • 科技公司网站首页商品营销推广的方法有哪些
  • 政府网站建设多少钱电商平台如何推广运营
  • asp.net网站开发实战b2b平台有哪几个
  • 现在注册一个公司要多少钱seo网站优化经理
  • 第五次普查数据自网站怎么做独立站
  • 域名及对应网站百度平台客服联系方式
  • 长春建站精准客户资源购买
  • 用dw设计最简单的网页北京seo编辑
  • 做交互的网站百度推广退款投诉
  • 如何做好网站搜索引擎优化交换友情链接的渠道
  • 装修网站模板下载江西seo推广方案
  • 网站建设网站建设免费友情链接网页
  • 电力大学临港校区建设网站企业网站推广的形式有
  • 团购网站大全做相册推广联盟平台
  • php 做的应用网站百度广告公司联系方式
  • 苏州工业园区做政务网站的公司网站里的友情链接
  • 网站独立ip多代表什么沪深300指数是什么意思
  • 丰县网站建设广州营销型网站
  • seo包年服务做seo推广一年大概的费用
  • wordpress 砍价插件seo博客写作
  • 北京做兼职从哪个网站怎么注册一个网站
  • 电子商务网站建设实训总结报告山西seo顾问
  • 自我介绍html网页模板上海最专业的seo公司
  • wordpress建站全教程网络营销推广主要做什么?
  • 做web网站常用框架重大军事新闻
  • 东莞市机电工程学校网站建设与管理百度域名购买
  • 烟台seo网站推广如何优化网络连接
  • 织梦网站做seo优化广东佛山疫情最新情况