温馨提示×

centos如何配置nodejs守护进程

小樊
44
2026-07-08 06:43:09
栏目: 编程语言

CentOS 上配置 Node.js 守护进程,常见做法有几种,从推荐到不推荐依次如下。你可以根据服务器规模和需求选择。


✅ 推荐方案一:使用 systemd(CentOS 7+ 官方推荐)

1️⃣ 准备 Node.js 项目

假设你的项目目录是:

/opt/myapp

启动文件是:

/opt/myapp/app.js

2️⃣ 创建 systemd 服务文件

sudo vi /etc/systemd/system/myapp.service

内容示例:

[Unit]
Description=Node.js App
After=network.target

[Service]
Type=simple
User=nodeuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/node /opt/myapp/app.js
Restart=always
RestartSec=5
Environment=NODE_ENV=production
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target

⚠️ 注意:

  • User 建议用非 root 用户
  • ExecStart 中的 node 路径用 which node 确认

3️⃣ 重载并启动服务

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

4️⃣ 查看状态与日志

systemctl status myapp
journalctl -u myapp -f

优点

  • 开机自启
  • 自动重启
  • 日志管理完善
  • 官方支持

✅ 推荐方案二:PM2(最常用,适合 Node.js)

1️⃣ 安装 PM2

npm install -g pm2

2️⃣ 启动应用

pm2 start app.js --name myapp

3️⃣ 设置开机自启

pm2 startup
pm2 save

4️⃣ 常用命令

pm2 list
pm2 logs myapp
pm2 restart myapp
pm2 stop myapp

优点

  • 专为 Node.js 设计
  • 自动重启、日志管理
  • 非常适合生产环境

⚠️ 不推荐方案(老系统)

nohup(临时用)

nohup node app.js > app.log 2>&1 &

❌ 缺点:

  • 不会自动重启
  • 不利于管理

✅ 方案对比

方案 推荐度 自动重启 开机启动 适合场景
systemd ⭐⭐⭐⭐⭐ 服务器、生产环境
PM2 ⭐⭐⭐⭐⭐ Node.js 项目
nohup 临时测试

✅ 建议

  • CentOS 7/8/Stream → ✅ systemdPM2
  • Docker 环境 → ✅ PM2Docker restart policy
  • 生产环境 → ✅ systemd + PM2 二选一

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ Node.js 版本
  • ✅ 是否用 root 启动

我可以给你一份完全可直接用的配置

0