服务公告
蓝易云cdn:Centos7安装pm2 , 操作等常用命令
发布时间:2026-01-18 00:08
在 CentOS 7 上部署 PM2,核心目标是把 Node 服务做成“可控、可观测、可自愈、可开机自启”的生产级进程资产。PM2 本质是 Node 进程管理器:负责守护、重启、集群扩缩、日志管理与启动编排。✅
现实提醒:CentOS 7 已进入停止维护阶段,继续使用意味着安全与依赖风险上升。能迁移到 8/9 系或容器化就别硬扛;但如果你必须跑在 7 上,下面给你一套可落地的做法。🙂
一、前置条件:先把 Node.js/npm 安装到位
你有三种常见路径,按企业环境选一种即可:
方案 A:仓库直接安装(最省事)
如果你们内网/源里已经提供 nodejs、npm 包:
yum install -y nodejs npm
node -v
npm -v
方案 B:离线安装二进制包(最稳妥、可审计)📦
1)在可联网机器获取 Node 的 Linux x64 发布包(tar.xz),传到服务器例如 /opt/pkg/
2)安装到 /usr/local/node:
mkdir -p /usr/local/node
tar -xf /opt/pkg/node-*.tar.* -C /usr/local/node --strip-components=1
echo 'export PATH=/usr/local/node/bin:$PATH' > /etc/profile.d/node.sh
source /etc/profile
node -v && npm -v
方案 C:源码编译(不推荐,除非你被依赖卡死)
成本高、时间长,通常只在“二进制不兼容”时作为最后手段。
二、安装 PM2(全局安装)
npm config set registry https://registry.npmjs.org/
npm i -g pm2
pm2 -v
说明:PM2 装在全局后,全机可用;版本统一也更利于运维标准化。⚙️
三、用 PM2 启动你的 Node 服务(两种主流姿势)
1)直接启动(简单快速)
pm2 start app.js --name myapp
pm2 status
pm2 logs myapp
2)生产推荐:ecosystem 配置(可复制、可变更管理)🚀
在项目目录创建 ecosystem.config.js(示例):
module.exports = {
apps: [{
name: "myapp",
script: "app.js",
instances: "max",
exec_mode: "cluster",
env: { NODE_ENV: "production" }
}]
}
启动:
pm2 start ecosystem.config.js
四、开机自启动(关键动作:startup + save)🔒
PM2 自己不等于系统服务,要交给 systemd 托管:
pm2 startup systemd -u 你的运行用户 --hp /home/你的运行用户
pm2 save
两句人话解释:
startup生成 systemd 启动脚本,让机器重启后能拉起 PM2save把当前进程清单固化,否则重启后 PM2 不知道该拉谁起来🙂
验证:
systemctl status pm2-你的运行用户
pm2 resurrect
五、常用命令速查表(运维最常用的一套)🧠
| 目的 | 命令 |
|---|---|
| 查看进程状态 | pm2 status |
| 启动应用 | pm2 start app.js --name myapp |
| 停止/删除 | pm2 stop myapp/pm2 delete myapp |
| 重启(硬重启) | pm2 restart myapp |
| 平滑重载(推荐) | pm2 reload myapp |
| 观察资源与事件 | pm2 monit |
| 查看详情 | pm2 show myapp |
| 看日志 | pm2 logs myapp --lines 200 |
| 清空日志缓存 | pm2 flush |
| 保存当前进程清单 | pm2 save |
| 机器重启后恢复 | pm2 resurrect |
| 更新 PM2 | npm i -g pm2@latest && pm2 update |
六、生产化建议(少踩坑、少背锅)✅
- 用普通用户跑服务:别用 root,权限边界更清晰。
- 优先用 cluster 模式:
instances=max吃满 CPU,多核更划算。 - 日志要控量:高并发下日志是“隐形成本刺客”。建议启用 logrotate:
pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 50M
pm2 set pm2-logrotate:retain 7
- 上线前做一次重启演练:
pm2 save+reboot后是否能自动拉起,别等到凌晨故障才发现“没自启”。🙂
如果你把你的启动方式(app.js 还是 npm script)、运行用户、是否需要多实例、日志目录策略发我,我可以按你的项目给一份“最小可用且偏生产级”的 ecosystem 配置与 systemd 自启落地方案。
已经是第一篇啦!
下一篇: 服务器路由命令有哪些常用技巧?
