温馨提示×

debian如何守护nodejs进程

小樊
40
2026-09-13 18:10:42
栏目: 编程语言

在 Debian 上“守护(保活 / 后台运行)Node.js 进程”常见有几种方式,从简单到生产级如下:


一、最推荐(生产环境):systemd(Debian 自带)

1. 编写 service 文件

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

示例(假设你的 Node 项目在 /var/www/myapp):

[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/app.js
Restart=on-failure
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

2. 启用并启动

sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp

3. 查看状态 / 日志

systemctl status myapp
journalctl -u myapp -f

✅ 优点:开机自启、崩溃自动重启、日志集成


二、PM2(Node 专用,最方便)

1. 安装

sudo npm install -g pm2

2. 启动

pm2 start app.js --name myapp

3. 开机自启

pm2 startup
pm2 save

4. 常用命令

pm2 list
pm2 logs
pm2 restart myapp
pm2 stop myapp

✅ 优点:简单、带监控、可集群


三、nohup(临时 / 测试用)

nohup node app.js > app.log 2>&1 &

❌ 缺点:

  • 不会自动重启
  • 服务器重启后不会自启

四、screen / tmux(交互式)

screen -S nodeapp
node app.js
# Ctrl+A D 退出

❌ 不适合生产


五、Docker(进阶)

如果你用容器:

docker run -d --restart=always node:18 myapp

选择建议

场景 推荐
生产服务器 ✅ systemd
快速部署 ✅ PM2
临时测试 nohup
微服务 Docker

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

  • Debian 版本
  • Node 项目路径
  • 是否 HTTPS / Nginx

我可以帮你写完整可用的 service 文件

0