在 CentOS 上启动 Node.js 服务,常见的方式有直接运行、后台运行、使用进程管理工具(PM2 / systemd)。下面按常用程度给你说明。
node app.js
或(如果用了 ES Module)
node index.js
⚠️ 关闭终端服务就停了。
&node app.js &
查看进程:
ps -ef | grep node
关闭:
kill -9 进程ID
nohupnohup node app.js > app.log 2>&1 &
查看日志:
tail -f app.log
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 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 路径
sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl enable nodeapp
sudo systemctl status nodeapp
command not found: node
解决:
which node
或重新安装 Node(推荐用 nvm 或官方二进制)
lsof -i:3000
kill -9 PID
| 场景 | 推荐方式 |
|---|---|
| 本地测试 | node app.js |
| 小项目 | nohup / pm2 |
| 生产环境 | systemd + pm2 |
如果你愿意,我可以:
直接告诉我你的项目类型和 CentOS 版本即可。