温馨提示×

debian nodejs如何开启守护进程

小樊
44
2026-09-23 14:50:34
栏目: 编程语言

在 Debian 上让 Node.js 程序以守护进程(后台运行)方式启动,常见有几种做法,从“简单粗暴”到“生产推荐”如下:


一、最简单:使用 & + nohup(不推荐生产)

nohup node app.js > app.log 2>&1 &
  • nohup:断开终端后不退出
  • &:后台运行
  • 查看进程:ps aux | grep node
  • 停止:kill -9 PID

⚠️ 缺点:服务器重启不会自动启动,管理不方便


二、使用 systemd(✅ 推荐,Debian 官方方式)

1️⃣ 创建 service 文件

sudo nano /etc/systemd/system/node-app.service

示例内容:

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

[Service]
ExecStart=/usr/bin/node /var/www/app/app.js
WorkingDirectory=/var/www/app
User=www-data
Environment=NODE_ENV=production
Restart=always

[Install]
WantedBy=multi-user.target

ExecStart 写 绝对路径 which node 可查看 node 路径


2️⃣ 重载并启动

sudo systemctl daemon-reload
sudo systemctl start node-app
sudo systemctl enable node-app   # 开机自启

3️⃣ 常用命令

systemctl status node-app
journalctl -u node-app -f
systemctl restart node-app

✅ 优点:

  • 自动重启
  • 开机启动
  • 日志统一管理
  • 最稳定

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

1️⃣ 安装

sudo npm install -g pm2

2️⃣ 启动

pm2 start app.js --name my-app

3️⃣ 开机自启

pm2 startup
pm2 save

4️⃣ 常用命令

pm2 list
pm2 logs
pm2 restart my-app
pm2 stop my-app

✅ 优点:

  • 多进程
  • 日志管理
  • 监控方便

四、对比建议

方式 推荐度 场景
nohup & ⭐ 临时测试
systemd ⭐⭐⭐⭐⭐ 生产服务器
PM2 ⭐⭐⭐⭐ Node 专用

五、常见坑

  • ❌ 用了 forever(已过时)
  • ❌ node 路径写错
  • ❌ 忘记 WorkingDirectory
  • ❌ 没设 Restart=always

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

  • Debian 版本
  • Node 版本
  • 是否是 web 服务 / 脚本

我可以给你定制一份 systemd 配置。

0 踩