温馨提示×

centos nodejs如何开机启动

小樊
44
2026-09-05 23:29:27
栏目: 编程语言

在 CentOS 上让 Node.js 程序开机启动,常见有以下 几种方式,按推荐程度从高到低给你说明。


一、推荐方式:使用 systemd(CentOS 7 / 8 / Stream)

1️⃣ 编写 Node.js 启动脚本(假设)

例如你的项目在:

/opt/myapp

启动命令:

node /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=root
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/node /opt/myapp/app.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

⚠️ 注意:

  • ExecStart 必须是 绝对路径
  • 可用 which node 查看 node 路径

3️⃣ 设置开机启动

sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp

4️⃣ 查看状态

systemctl status myapp
journalctl -u myapp -f

二、使用 PM2(非常适合 Node.js)

1️⃣ 安装 PM2

npm install -g pm2

2️⃣ 启动项目

pm2 start /opt/myapp/app.js --name myapp

3️⃣ 设置开机启动

pm2 startup
pm2 save

PM2 会自动创建 systemd 服务。


三、CentOS 6 或老旧系统(不推荐)

使用 rc.local

vi /etc/rc.d/rc.local

添加:

/usr/bin/node /opt/myapp/app.js >> /var/log/myapp.log 2>&1 &

赋予执行权限:

chmod +x /etc/rc.d/rc.local

四、常见问题

❓ node 命令找不到

使用绝对路径:

which node

❓ 需要环境变量

在 service 文件中加:

Environment=NODE_ENV=production

✅ 推荐总结

方式 推荐度 说明
systemd ⭐⭐⭐⭐⭐ 官方标准
PM2 ⭐⭐⭐⭐ Node 专用
rc.local 旧系统

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

  • CentOS 版本
  • Node 安装方式(源码 / nvm / yum)
  • 是否用 Docker

我可以给你精准配置示例

0