温馨提示×

centos nodejs服务如何起

小樊
44
2026-09-08 21:16:36
栏目: 编程语言

在 CentOS 上启动 Node.js 服务,常见有以下几种方式,从“最简单”到“生产推荐”依次说明。


一、最基础方式(临时运行)

1. 直接运行

node app.js

⚠️ 缺点:

  • 关闭终端就停了
  • 不适合生产环境

二、后台运行(不推荐长期使用)

2. 使用 nohup

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

查看进程:

ps -ef | grep node

停止服务:

kill -9 进程ID

三、使用 PM2(✅ 强烈推荐)

3. 安装 PM2

npm install -g pm2

4. 启动 Node 服务

pm2 start app.js

5. 常用命令

pm2 list          # 查看服务
pm2 logs          # 查看日志
pm2 restart app   # 重启
pm2 stop app      # 停止
pm2 delete app    # 删除

6. 设置开机自启(非常重要)

pm2 startup
pm2 save

✅ 适合:

  • 生产环境
  • 多服务管理
  • 自动重启

四、使用 systemd(CentOS 7+ 推荐)

7. 创建服务文件

vim /etc/systemd/system/nodeapp.service

示例内容:

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

[Service]
ExecStart=/usr/bin/node /root/app/app.js
WorkingDirectory=/root/app
User=root
Restart=always

[Install]
WantedBy=multi-user.target

8. 启动服务

systemctl daemon-reload
systemctl start nodeapp
systemctl enable nodeapp

查看状态:

systemctl status nodeapp

五、常见注意事项

✅ Node 版本

CentOS 自带 node 可能很老:

node -v

建议使用 nvm 安装新版本:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 18

✅ 防火墙(如果对外访问)

firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload

六、我该选哪种?

场景 推荐方式
本地测试 node app.js
临时后台 nohup
生产环境 ✅ PM2
系统级服务 systemd

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

  • CentOS 版本(7 / 8 / Stream)
  • Node 项目类型(Express / Nest / 原生)
  • 是否要对外网访问

我可以给你一份完整可直接用的配置。

0 踩