服务公告

服务公告 > Linux命令 > 蓝易云cdn:Centos7安装pm2 , 操作等常用命令

蓝易云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 启动脚本,让机器重启后能拉起 PM2
  • save 把当前进程清单固化,否则重启后 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

六、生产化建议(少踩坑、少背锅)✅

  1. 用普通用户跑服务:别用 root,权限边界更清晰。
  2. 优先用 cluster 模式instances=max 吃满 CPU,多核更划算。
  3. 日志要控量:高并发下日志是“隐形成本刺客”。建议启用 logrotate:
pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 50M
pm2 set pm2-logrotate:retain 7
  1. 上线前做一次重启演练pm2 save + reboot 后是否能自动拉起,别等到凌晨故障才发现“没自启”。🙂

如果你把你的启动方式(app.js 还是 npm script)、运行用户、是否需要多实例、日志目录策略发我,我可以按你的项目给一份“最小可用且偏生产级”的 ecosystem 配置与 systemd 自启落地方案。

已经是第一篇啦!

下一篇: 服务器路由命令有哪些常用技巧?