在 Debian 上“管理 Node.js 进程”常见有几种层级和方案,从简单前台/后台运行到系统级守护进程管理。下面按实用程度从高到低介绍。
Debian 9+ 默认使用 systemd,这是生产环境最推荐的方式。
sudo nano /etc/systemd/system/myapp.service
示例:
[Unit]
Description=Node.js App
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/node /var/www/myapp/index.js
Restart=on-failure
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
sudo systemctl status myapp
sudo journalctl -u myapp -f
✅ 优点:开机自启、崩溃重启、日志集中
适合多 Node 项目 / 开发部署频繁的场景。
sudo npm install -g pm2
pm2 start index.js --name myapp
pm2 list
pm2 logs
pm2 restart myapp
pm2 stop myapp
pm2 delete myapp
pm2 startup
pm2 save
✅ 优点:简单、自带日志、监控、集群模式
仅适合临时测试。
nohup node index.js > app.log 2>&1 &
查看:
ps aux | grep node
⚠️ 缺点:
适合调试或开发。
screen
node index.js
# Ctrl+A D 退出
Debian + Docker:
docker run -d --restart=always node:18 myapp
| 场景 | 推荐 |
|---|---|
| 生产服务器 | systemd |
| 多个 Node 服务 | PM2 |
| 临时运行 | nohup |
| 调试 | tmux / screen |
| 云原生 | Docker |
如果你愿意,可以告诉我:
我可以给你定制一份 systemd 或 PM2 配置。