如何在CentOS上用pm2等进程管理器后台运行React开发服务器?
用PM2在CentOS后台运行React开发服务器
当然可以用PM2实现!我之前在开发React项目时也有过同样的需求——想用进程管理器统一管理后台服务,比nohup npm start &灵活太多。下面是一步步的实操方案,帮你搞定这个问题:
1. 先确保PM2已安装
如果还没装PM2,先全局安装:
npm install pm2 -g # 或者用yarn yarn global add pm2
2. 两种启动方式任选
方式一:直接用命令启动
在你的React项目根目录下,执行这条命令:
pm2 start npm --name "react-dev-server" -- start
--name给进程起个辨识度高的名字,方便后续管理--是关键!用来分隔PM2的参数和npm的参数,不然PM2会把start当成自己的参数处理,这可能是你之前失败的原因之一
方式二:用配置文件启动(更灵活)
如果需要自定义日志路径、环境变量等,推荐创建PM2的配置文件:
- 在项目根目录创建
ecosystem.config.js:
module.exports = { apps: [ { name: 'react-dev-server', // 进程名称 script: 'npm', // 要执行的脚本 args: 'start', // 传递给npm的参数 cwd: '/home/your-user/react-project', // 替换成你的项目绝对路径 env: { NODE_ENV: 'development' // 开发环境变量 }, log_date_format: 'YYYY-MM-DD HH:mm:ss', // 日志时间格式 out_file: './logs/dev-out.log', // 标准输出日志路径 error_file: './logs/dev-error.log' // 错误日志路径 } ] };
- 然后启动:
pm2 start ecosystem.config.js
3. 常用PM2管理命令
- 查看所有进程状态:
pm2 status - 查看React服务器的实时日志:
pm2 logs react-dev-server --follow - 重启进程:
pm2 restart react-dev-server - 停止进程:
pm2 stop react-dev-server - 设置开机自启(可选):
pm2 startup # 执行后按照提示运行生成的系统命令 pm2 save # 保存当前进程状态,开机时自动恢复
可能的坑点排查
如果之前启动失败,大概率是这两个原因:
- 没加
--分隔PM2和npm的参数,导致PM2无法正确识别npm start命令 - 没有在项目根目录执行命令,也没在配置文件里指定
cwd,PM2找不到package.json
内容的提问来源于stack exchange,提问作者Astronought
相关产品推荐
相关产品推荐

