温馨提示×

centos nodejs如何守护

小樊
49
2026-09-30 00:08:06
栏目: 编程语言

在 CentOS 上“守护(后台稳定运行)”Node.js 程序,常见有 4 种主流方案,从“简单”到“生产级”依次如下:


一、最简方式:nohup(不推荐长期用)

适合临时跑一下:

nohup node app.js > app.log 2>&1 &
  • 关闭终端不会停
  • 服务器重启会丢
  • 无自动重启

查看:

ps aux | grep node

二、PM2(✅ 最推荐,生产常用)

1. 安装

npm install -g pm2

2. 启动

pm2 start app.js

3. 常用命令

pm2 list
pm2 logs
pm2 restart app
pm2 stop app
pm2 delete app

4. 开机自启(CentOS 关键)

pm2 startup
pm2 save

重启服务器后 Node 服务会自动拉起

✅ 优点:自动重启、日志管理、集群模式、监控


三、systemd(CentOS 7+ 官方方式)

适合“像系统服务一样管理”

1. 创建服务文件

vi /etc/systemd/system/nodeapp.service

内容示例:

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

[Service]
ExecStart=/usr/bin/node /opt/app/app.js
WorkingDirectory=/opt/app
Restart=always
User=nodeuser
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

2. 启动并设置开机

systemctl daemon-reload
systemctl start nodeapp
systemctl enable nodeapp

查看状态:

systemctl status nodeapp

✅ 优点:系统级、稳定、无需额外依赖


四、forever(老方案,逐渐淘汰)

npm install -g forever
forever start app.js

❌ 不如 PM2 好用,不推荐新项目


推荐选择总结

场景 推荐
本地测试 nohup
生产服务 ✅ PM2 / systemd
运维规范强 systemd
快速部署 PM2

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

  • CentOS 版本(6 / 7 / 8)
  • Node 版本
  • 是否用 npm start

我可以给你一套可直接用的配置。

0 踩