温馨提示×

CentOS如何设置Nodejs开机

小樊
47
2026-08-18 14:35:48
栏目: 编程语言

CentOS 上设置 Node.js 开机自启,常见有三种方式,推荐使用 systemd(CentOS 7+)。下面按常用场景给你说明。


一、使用 systemd(✅ 推荐,CentOS 7/8/Stream)

1️⃣ 准备 Node.js 项目

假设你有一个 Node.js 项目:

/opt/myapp
├── app.js
├── package.json

确认 Node.js 路径:

which node

例如:

/usr/bin/node

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=always
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

✅ 如果你用的是 npm start

ExecStart=/usr/bin/npm start

3️⃣ 重载 systemd 并启用开机启动

sudo systemctl daemon-reload
sudo systemctl enable myapp

4️⃣ 启动 / 查看状态

sudo systemctl start myapp
sudo systemctl status myapp

✅ 重启服务器测试:

reboot

二、使用 PM2(适合生产环境,✅ 很常用)

1️⃣ 安装 PM2

npm install -g pm2

2️⃣ 启动项目

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

3️⃣ 设置开机自启

pm2 startup

执行后会提示一条命令,类似:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u root --hp /root

直接复制执行


4️⃣ 保存进程列表

pm2 save

重启测试:

reboot
pm2 list

三、CentOS 6(不推荐,已过时)

CentOS 6 使用 chkconfig

vi /etc/init.d/myapp

然后:

chkconfig --add myapp
chkconfig myapp on

⚠️ 建议升级系统


四、常见错误排查

❌ 服务启动失败

journalctl -u myapp -f

❌ node 路径不对

which node

❌ 端口被占用

netstat -tunlp | grep 3000

五、推荐方案总结

场景 推荐方式
单服务、系统级 ✅ systemd
多 Node 项目 ✅ PM2
CentOS 6 ⚠️ chkconfig

如果你愿意,可以把 CentOS 版本 + Node 版本 + 启动方式(node / npm / pm2) 发我,我可以帮你 直接写一份可用的 service 文件

0