首先全局安装

npm i pm2 -g

最基础的使用方法

pm2 start xxx
这种方法一般都不会满足我们的需求,因为我们在package.json中配置的start,一般都不是只有运行一个文件这么简单,比如我举一个例子
"npm start": "cross-env NODE_ENV=production nodemon --inspect ./bin/server.js",

想要实现上边的方法,可以先创建一个配置文件

pm2 init simple创建配置文件

运行完成后,会创建一个ecosystem.config.js文件

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

最基础的配置文件中,只有两个配置

name: 应用名称
script: 运行脚本的位置

看看我要实现的功能,除了运行外,做了三件事

"cross-env NODE_ENV=production nodemon --inspect ./bin/server.js",

  1. NODE_ENV: 配置环境参数
  2. nodemon: 监听修改,自动更新
  3. --inspect: log在谷歌浏览器控制台上
1-配置环境参数

在配置中配置如下

env: {NODE_ENV: "production",...
},

也可以配置多个

env: {NODE_ENV: "development",...
},
env_dev: {NODE_ENV: "development",...
},
env_pro: {NODE_ENV: "production",...
},

在运行项目时,添加指定的环境,如执行 pm2 start ecosystem.config.js --env development

2-监听修改,自动更新

可以通过watch属性进行设置,当watch中的文件被修改时,项目就会更新

watch: ["bin","config","routers","utils"
],

还可以添加ignore_watch属性,设置不坚挺的目录

ignore_watch: ["node_modules",
],
3-log在谷歌浏览器控制台上

可以通过配置node_args属性来设置--inspect方法

node_args: ['--inspect']

最后放上demo的完整配置

module.exports = {apps: [{name: "node-server", // 应用名称script: "./bin/server.js", // 启用的脚本地址node_args: ['--inspect'], // 传递给节点可执行文件的参数env: { // 我的demo项目中不需要这个,就没有配置NODE_ENV: "production"},watch: [ // 监听 更新"bin","config","routers","utils"],ignore_watch: [ // 不监听的目录 "node_modules",],error_file: "./logs/pm2/app-err.log",  // 错误日志路径out_file: "./logs/pm2/app-out.log",  // 普通日志路径autorestart: true // 程序崩溃后自动重启}]
}

----------end----------

pm2 启动 nodejs 项目相关推荐

  1. 在Centos上启动nodejs项目,并使用pm2管理nodejs应用

    node+koa2+mysql入门可以查看这篇文章https://blog.csdn.net/qq_41231694/article/details/123788781 一.在centos上安装nod ...

  2. PM2 部署 nodejs 项目

    PM2 部署 nodejs 项目 在网上找到pm2.目前似乎最常见的线上部署nodejs项目的有forever,pm2这两种. 使用场合: forever管理多个站点,每个站点访问量不大,不需要监控. ...

  3. 使用glup启动nodejs项目

    install gulp -g 下面的步骤到要启动的项目目录下 npm install gulp –save-dev npm install natives 启动命令:gulp 遇到的错误 这是不能找 ...

  4. pm2启动node项目

    前端项目部署阿里云要配置nginx,然后启动nginx就可以了, 如果是node服务,想一直启动,可以用PM2 ,PM2 是具有内置负载均衡器的 Node.js 应用程序的生产流程管理器.它允许您使应 ...

  5. pm2启动的项目如何修改名字

    一开始我用pm2 start项目的时候没有起名字,然后默认name就用了这个文件名了,现在我想在修改这个名字.可以执行下面这个命令 pm2 restart dev-server --name newn ...

  6. 如何将nodejs项目程序部署到阿里云服务器上

    将nodejs项目程序部署到阿里云服务器上 一.概述 二.具体步骤 1.拥有自己的服务器 2.下载Xshell 3. oneinstack配置web环境 4. XShell连接远程主机 5.更新系统软 ...

  7. NODEJS项目实践0.4 [domain,pm2,log4js,md5]

    一.前言 ⋅⋅⋅上节我们基于mongo数据存取的操作,实现了用户注册.登录.退出功能,并应用了初级的权限验证.本节将处理nodejs异常情况.加密.日志及进程守护. git : https://git ...

  8. EXPRESS项目PM2启动NODE_ENV传参数不生效问题解决方法

    EXPRESS项目PM2启动NODE_ENV传参数不生效问题解决方法 参考文章: (1)EXPRESS项目PM2启动NODE_ENV传参数不生效问题解决方法 (2)https://www.cnblog ...

  9. 启动egg项目时报错ERROR 11104 nodejs AgentWorkerDiedError [master] agent_worker#1:9544 died (code : 1, signa

    今天在使用命令行启动egg项目,执行 npm run dev时总是报错 2020-06-11 10:44:32,332 ERROR 11104 nodejs.AgentWorkerDiedError: ...

  10. 使用pm2启动node文件_使用 PM2 管理nodejs进程

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

最新文章

  1. swt能单独在linux运行么,java – 在Mac上运行基于SWT的跨平台jar
  2. stm32l0的停止模式怎么唤醒_探索者 STM32F407 开发板资料连载第二十二章 待机唤醒实验
  3. Python Module — asyncio 协程并发
  4. Python 技巧篇-如何避免python报错导致强制关闭窗口
  5. 不小心关闭了explorer.exe进程,桌面变白解决办法
  6. 5.5.2 最小的N个和
  7. android自定义控件实例
  8. 4 手把手,整合 RabbitMQ Spring 家族
  9. python函数的嵌套和递归_Python通过递归函数输出嵌套列表元素
  10. DAY37-Python入门学习-进程池与线程池、协程、gevent模块
  11. 晚上的笔记:p2p vod
  12. 苹果手机sim卡无效怎么办_苹果手机存储空间不足怎么办
  13. fl studio mobile安卓,ios下载
  14. 小米(社招)测试开发面经-小米手机管家
  15. 华为实习结束后,鹅厂和字节跳动递来的offer让我手足无措
  16. 【Windows包管理器(choco)】choco : 无法将“choco”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。
  17. python中各种序列/容器的索引、切片小结;如何取得可迭代对象中的element?如何取元素?
  18. Excel VBA:更改图表数据标记大小和曲线粗细
  19. Lifecycle 使用与源码分析
  20. 总谐波失真80_如何将总谐波失真(THD)控制着10%以下? - 全文

热门文章

  1. Python爬虫爬取网页上的所有图片
  2. 如何加声调口诀_拼音顺口溜儿歌和口诀 学拼音的重点难点详解
  3. shark-0.9.1 安装后测试
  4. Win10笔记本电脑怎么直接重置初始化
  5. 深度学习入门笔记(8)——什么是optim?
  6. 任正非的小女儿,出道了!以后会代言华为手机吗?
  7. 论文详读《基于改进 LeNet-5 模型的手写体中文识别》
  8. 无线摄像头一直显示请求服务器,远程摄像头为什么要连接服务器
  9. 【信号隐藏】基于lsb算法实现音频水印嵌入提取matlab代码
  10. 对数据库范式的理解以及无损分解技巧