pm2更改instances配置不起作用解决办法

       最近接手公司一个前辈的项目使用pm2进行进程管理,但是我发现每一次运行的时候都会创建4个进程但是项目测试机内核不允许一次创建四个进程,因此打算更改项目配置,将ecosystem.config.js文件中的instances这一配置由4改为1。本来以为到此就万事大吉了,没想到再次运行后并没有生效还是创建了四个进程。后来找到的解决办法:是先将所有的进程删除,然后再重启就OK啦!

       具体运行命令取决于你的package.json中如何配置,比我的package.json部分配置如下:

       

"scripts": {
    "dev": "node ./bin/server.js",
    "build": "rm -rf ./.next/static && next build",
    "start": "next start",
    "export": "rm -rf ./dist && next export -o ./dist",
    "pm2:start": "npm run build && pm2 startOrRestart ecosystem.config.js --env production",
    "pm2:stop": "pm2 stop www.qqhs.org",
    "pm2:delete": "pm2 delete www.qqhs.org"
}

所以我需要先:

npm run pm2:delete

然后再

npm run pm2:start

或者不嫌麻烦的话可以使用pm2 delete id|all 来删除所有进程~

### 安装和配置PM2用于React项目的部署 #### 1. PM2简介 PM2 是一个进程管理器,主要用于 Node.js 应用程序的管理和监控。虽然 React 是前端框架,但在生产环境中通常需要将其打包后的静态文件通过 Node.js 或其他服务器提供服务[^1]。 --- #### 2. 在React项目中安装PM2 为了在 React 项目中使用 PM2 来管理应用程序,可以按照以下方式操作: ##### a. 全局安装PM2 如果尚未全局安装 PM2,则可以通过 npm 执行以下命令来安装它: ```bash npm install -g pm2 ``` 此命令会在系统范围内安装 PM2,允许其作为 CLI 工具运行[^4]。 --- #### 3. 构建React项目 在将 React 项目部署到服务器之前,需先构建项目以生成静态资源文件。执行以下命令: ```bash npm run build ``` 这将在 `build` 文件夹中生成优化过的静态文件。 --- #### 4. 创建Node.js服务 由于 React 是前端框架,默认情况下无法直接由 PM2 提供服务,因此需要创建一个简单的 Node.js HTTP 服务器来托管这些静态文件。 可以在项目的根目录下创建一个新的 JavaScript 文件(例如 `server.js`),并编写如下代码: ```javascript const express = require('express'); const path = require('path'); const app = express(); const PORT = process.env.PORT || 3000; // 设置静态文件路径 app.use(express.static(path.resolve(__dirname, 'build'))); // 处理所有路由请求,返回 index.html app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, 'build', 'index.html')); }); // 启动服务器 app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); }); ``` 上述代码使用 Express 框架加载 React 的 `build` 文件夹中的静态资源,并处理所有未定义的路由请求,确保单页应用能够正常工作[^3]。 --- #### 5. 配置PM2启动Node.js服务 完成以上步骤后,即可利用 PM2 启动 Node.js 服务。以下是具体方法: ##### a. 初始化PM2配置文件 在项目根目录下初始化 PM2 配置文件: ```bash pm2 init simple ``` 这将生成一个名为 `ecosystem.config.js` 的默认配置文件。可以根据需求修改该文件的内容,例如指定入口脚本和服务名称。 示例配置文件内容如下: ```javascript module.exports = { apps: [ { name: 'my-react-app', script: './server.js', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', env: { NODE_ENV: 'production' } } ] }; ``` 此处指定了要运行的服务名 (`name`) 和入口脚本 (`script`) 等参数。 --- ##### b. 使用PM2启动服务 保存配置文件后,可通过以下命令启动服务: ```bash pm2 start ecosystem.config.js ``` 此时,PM2 将根据配置文件中的设置启动 Node.js 服务,并托管已构建好的 React 应用程序。 --- #### 6. 查看和管理PM2状态 启动完成后,可随时查看当前正在运行的应用列表及其状态: ```bash pm2 list ``` 如果有需要停止或重启某个特定实例,也可以分别执行以下命令: ```bash pm2 stop my-react-app pm2 restart my-react-app ``` 当遇到端口冲突等问题时,应确认是否有重复的任务仍在运行,并清理旧任务后再尝试重新部署[^2]。 --- ### 总结 通过以上流程,在 React 项目中成功集成了 PM2 并完成了自动化部署过程。最终实现了基于 Node.js 的高效稳定服务支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值