在 Ubuntu 上管理 Node.js 进程,常见方式从「简单到生产级」有下面几种,按使用场景给你梳理一下。
node app.js
node app.js &
ps aux | grep node
kill -9 PID
⚠️ 缺点:服务器重启、进程崩溃都不会自动恢复。
nohup(简单持久化)nohup node app.js > app.log 2>&1 &
npm install -g pm2
pm2 start app.js
pm2 list
pm2 logs
pm2 restart app
pm2 stop app
pm2 delete app
pm2 startup
pm2 save
✅ 优点:
适合「长期运行的服务」。
sudo nano /etc/systemd/system/nodeapp.service
示例:
[Unit]
Description=Node.js App
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/app
ExecStart=/usr/bin/node app.js
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl enable nodeapp
sudo systemctl status nodeapp
sudo systemctl restart nodeapp
✅ 优点:
如果你用容器:
docker run -d -p 3000:3000 node-app
配合 docker-compose 或 k8s 使用。
| 场景 | 推荐 |
|---|---|
| 本地调试 | node / nohup |
| 小型服务器 | PM2 |
| 生产服务器 | systemd |
| 微服务/云原生 | Docker |
如果你愿意,可以告诉我:
我可以直接帮你写一份 可用配置。