在 CentOS 上配置 Node.js 开机自启动,常用有三种方式,推荐程度从高到低如下:
假设你的项目路径是:
/opt/myapp
启动命令是:
node /opt/myapp/app.js
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=always
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
⚠️ 注意:
/usr/bin/node换成你自己的 node 路径
可用which node查看
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
systemctl status myapp
✅ 重启服务器后,Node.js 会自动启动。
npm install -g pm2
pm2 start /opt/myapp/app.js --name myapp
pm2 startup
pm2 save
pm2 startup会输出一条命令,复制并执行即可
✅ 重启后 PM2 会自动拉起 Node 应用
/etc/rc.d/rc.localsudo vi /etc/rc.d/rc.local
添加:
/usr/bin/node /opt/myapp/app.js > /var/log/myapp.log 2>&1 &
sudo chmod +x /etc/rc.d/rc.local
⚠️ 缺点:无自动重启、不好管理、CentOS 8 已弱化
| 场景 | 推荐方式 |
|---|---|
| 生产环境 | ✅ systemd 或 PM2 |
| 单服务、简单 | systemd |
| 多 Node 服务 | PM2 |
| 临时测试 | rc.local |
如果你愿意,可以告诉我:
我可以帮你写 完全适配你环境的配置 ✅