在 Debian 上让 Node.js 程序“守护(后台常驻)”运行,常见有几种方式,从简单到生产级给你列一下。
适合临时测试。
nohup node app.js > app.log 2>&1 &
查看进程:
ps aux | grep node
sudo nano /etc/systemd/system/myapp.service
示例:
[Unit]
Description=Node.js App
After=network.target
[Service]
ExecStart=/usr/bin/node /var/www/myapp/app.js
WorkingDirectory=/var/www/myapp
User=www-data
Environment=NODE_ENV=production
Restart=always
[Install]
WantedBy=multi-user.target
⚠️ 注意:
/usr/bin/node用which node确认路径
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
systemctl status myapp
journalctl -u myapp -f
✅ 优点:
sudo npm install -g pm2
pm2 start app.js --name myapp
pm2 startup
pm2 save
pm2 list
pm2 logs
pm2 restart myapp
pm2 stop myapp
✅ 优点:
如果你用容器:
docker run -d node:18 node app.js
或写 Dockerfile + docker-compose
| 场景 | 推荐 |
|---|---|
| 临时测试 | nohup |
| 生产服务器 | systemd ✅ |
| 多 Node 项目 | PM2 ✅ |
| 微服务/云 | Docker |
如果你愿意,可以告诉我:
我可以帮你写一份可直接用的 systemd 配置。