温馨提示×

Ubuntu怎么启动Nodejs

小樊
42
2026-07-11 12:36:36
栏目: 编程语言

Ubuntu 上启动 Node.js,一般分两种情况:
1️⃣ 直接运行 Node.js 程序2️⃣ 作为服务在后台运行
下面按常见场景一步步说。


一、先确认是否已安装 Node.js

node -v
npm -v

如果没安装,先安装(推荐用 NodeSource):

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

(Node.js 18 是常用的 LTS 版本)


二、直接运行 Node.js 程序(最简单)

假设你有一个 app.js

node app.js

✅ 这样就已经“启动 Node.js”了。


三、后台运行(推荐开发用)

1️⃣ 使用 nohup(简单但不推荐生产)

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

查看进程:

ps aux | grep node

停止:

kill <PID>

2️⃣ 使用 pm2(强烈推荐 ✅)

安装 pm2

sudo 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

四、生产环境(系统服务方式)

如果是 Ubuntu 20.04 / 22.04 + systemd

1️⃣ 创建服务文件

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

内容示例:

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

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

[Install]
WantedBy=multi-user.target

2️⃣ 启动服务

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

查看状态:

sudo systemctl status nodeapp

五、常见错误排查

node: command not found

说明 Node.js 没装或 PATH 不对。

❌ 端口被占用

lsof -i:3000
kill -9 <PID>

❌ 权限问题

不要用 sudo node,而是:

sudo chown -R $USER:$USER /your/project

六、总结(推荐方案)

场景 建议
本地测试 node app.js
开发环境 pm2
生产环境 pm2systemd

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

  • 你的 Ubuntu 版本
  • 前端 / 后端 / API 服务
  • 是否需要 开机自启

我可以给你一套完全定制化的启动方案

0