温馨提示×

centos怎么启动nodejs服务

小樊
48
2026-09-27 00:40:48
栏目: 编程语言

在 CentOS 上启动 Node.js 服务,常见的方式有直接运行、后台运行、使用进程管理工具(PM2 / systemd)。下面按常用程度给你说明。


一、最基础方式(前台运行,不推荐生产)

node app.js

或(如果用了 ES Module)

node index.js

⚠️ 关闭终端服务就停了。


二、后台运行(简单但不稳定)

1️⃣ 使用 &

node app.js &

查看进程:

ps -ef | grep node

关闭:

kill -9 进程ID

2️⃣ 使用 nohup

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

查看日志:

tail -f app.log

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

1️⃣ 安装 PM2

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

四、使用 systemd(✅ 生产环境推荐)

1️⃣ 创建 service 文件

sudo vi /etc/systemd/system/nodeapp.service

示例内容:

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

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

[Install]
WantedBy=multi-user.target

⚠️ 路径和 node 路径要真实存在
可用 which node 查看 node 路径

2️⃣ 启动服务

sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl enable nodeapp

3️⃣ 查看状态

sudo systemctl status nodeapp

五、常见问题

❓ Node 命令不存在

command not found: node

解决:

which node

或重新安装 Node(推荐用 nvm 或官方二进制)


❓ 端口被占用

lsof -i:3000
kill -9 PID

六、推荐方案总结

场景 推荐方式
本地测试 node app.js
小项目 nohup / pm2
生产环境 systemd + pm2

如果你愿意,我可以:

  • 帮你写 完整的 systemd 配置
  • 帮你用 PM2 部署 Express / Nest / Vue / React
  • 帮你排查 启动报错

直接告诉我你的项目类型和 CentOS 版本即可。

0 踩