温馨提示×

debian nodejs开机如何启

小樊
39
2026-09-26 13:26:26
栏目: 编程语言

在 Debian 上让 Node.js 程序开机自启动,常见有几种方式,下面按推荐程度给你说明。


一、推荐方式:systemd(Debian 8+ 标准方式)

1️⃣ 准备 Node 程序

假设你的 Node 程序:

/opt/myapp/app.js

2️⃣ 创建 systemd 服务文件

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

内容示例:

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

[Service]
ExecStart=/usr/bin/node /opt/myapp/app.js
WorkingDirectory=/opt/myapp
User=www-data
Environment=NODE_ENV=production
Restart=on-failure

[Install]
WantedBy=multi-user.target

⚠️ User 不要用 root,除非必要

3️⃣ 重载并启用

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

4️⃣ 查看状态

systemctl status myapp
journalctl -u myapp -f

✅ 开机自动启动,崩溃自动重启


二、使用 PM2(开发/生产都常用)

1️⃣ 安装 PM2

npm install -g pm2

2️⃣ 启动程序

pm2 start app.js --name myapp

3️⃣ 设置开机启动

pm2 startup

按提示执行它给出的命令(通常是 systemctl enable pm2-root)

pm2 save

✅ 重启后会自动恢复


三、不推荐:rc.local(老方法)

sudo nano /etc/rc.local
/usr/bin/node /opt/myapp/app.js &

⚠️ Debian 新版本默认可能禁用 rc.local


四、常见坑

✅ Node 路径要用绝对路径:

which node

✅ 日志一定要看:

journalctl -u myapp

✅ 端口权限问题(80/443 需要权限)


总结建议

场景 推荐
生产服务器 ✅ systemd
快速部署 ✅ PM2
临时测试 ❌ rc.local

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

  • Node 版本
  • 是否用 npm / yarn
  • 是否监听端口

我可以直接帮你写一份完整的 service 文件。

0 踩