如何让你的前端服务在服务器上nohub运行

一般地,我们最习惯用 npm run dev 运行一个程序,但是我们需要在关闭窗口后它依然继续运行。这通常被称为"后台运行"或"守护进程化"。这里有几种主流且可靠的方法,你可以根据自己的需求选择:

⚙️ 方法一:使用 nohup 命令 (简单直接)

nohup 是"no hang up"的缩写,它的作用就是让进程忽略终端关闭信号,从而在后台持续运行。

  1. 进入项目目录 :确保当前路径是你的 package.json 文件所在的目录。

  2. 执行命令:

    • 不保存日志 (推荐):运行以下命令,所有输出会被丢弃,保持环境干净。

      bash

      javascript 复制代码
      nohup npm run dev >/dev/null 2>&1 &
    • 保存日志 :如果想留下运行记录以便日后排查问题,可以将输出重定向到文件。

      bash

      c 复制代码
      nohup npm run dev > my.log 2>my.log &
  3. 正确退出终端 :这是关键一步 。执行完上述命令后,不要直接点击关闭窗口的"X" 。必须先输入 exit 命令来退出终端会话,这样才能确保 nohup 进程被正确剥离并独立运行。

    bash

    bash 复制代码
    exit

🛠️ 方法二:使用专业进程管理工具 pm2 (功能强大)

pm2 是 Node.js 生态中最流行的进程管理工具,特别适合在生产环境中使用。它提供了进程守护、自动重启、日志管理等一系列强大功能。

  1. 全局安装 pm2:

    bash

    css 复制代码
    npm install pm2@latest -g
  2. 启动项目:在项目根目录下运行:

    bash

    sql 复制代码
    pm2 start npm -- run dev

    你也可以为这个进程命名,方便管理:

    bash

    arduino 复制代码
    pm2 start npm --name "my-vue-app" -- run dev
  3. 常用管理命令:

    • 查看所有进程状态:pm2 list
    • 停止应用:pm2 stop my-vue-app
    • 重启应用:pm2 restart my-vue-app
    • 删除应用:pm2 delete my-vue-app
    • 查看日志:pm2 logs my-vue-app

🖥️ 方法三:使用终端复用工具 screen 或 tmux (灵活方便)

如果你更喜欢在同一个窗口管理多个会话,screen 或 tmux 是很好的选择。它们可以创建独立的虚拟终端,即使断开连接,里面的进程也不会停止。

  1. 创建一个新的 screen 会话:

    bash

    perl 复制代码
    screen -S my-vue-dev
  2. 在新建的会话窗口中运行项目:

    bash

    arduino 复制代码
    npm run dev
  3. 分离会话 :按下键盘快捷键 Ctrl + A,然后按 D。这样你就会回到主终端,而 npm run dev 会在后台的 screen 会话中继续运行。

  4. 重新连接会话:当你想回来查看时,使用以下命令即可恢复:

    bash

    perl 复制代码
    screen -r my-vue-dev

🧰 方法四:使用专用工具 devctl (轻量级)

devctl 是一个专门为 npm run dev 这类开发命令设计的轻量级后台管理工具。

  1. 全局安装:

    bash

    复制代码
    npm install -g devctl
  2. 基本使用 :

    • 在后台启动服务:devctl start
    • 查看服务状态:devctl status
    • 查看实时日志:devctl logs
    • 停止服务:devctl stop

💡 简单对比与提示

  • 快速测试 :如果只是想临时释放终端,可以在命令后加一个 & 将其放到后台,例如 npm run dev &。但这个方法在关闭终端时进程依然可能被终止,不如 nohup 可靠。

  • ⚠️ 重要提示 :在Linux/macOS系统下使用 nohup 时,执行完启动命令后,务必使用 exit 命令退出终端 ,而不是直接关闭窗口,这样才能确保进程持续运行。

  • 适用场景建议:

    • 本地开发临时用 :nohup 或 & 就足够了。
    • 服务器长期运行 :推荐使用 pm2,它更专业、功能更全。
    • 需要多任务管理 :screen 或 tmux 是不错的选择。
相关推荐
变与不变8067 小时前
jQuery怎么使用
前端·javascript
神膘护体小月半8 小时前
flex 布局的 order 属性
前端·css
paopaokaka_luck8 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
仰望.8 小时前
vue 表格组件 vxe-table 树表格懒加载支持拖拽排序的详细用法
前端·javascript·vue.js·vxe-table
前端 贾公子8 小时前
vite-plugin-uni-manifest 升级指南
前端
小码哥_常8 小时前
iPhone 用户传了张 HEIC,我的前端崩了
前端
小码哥_常8 小时前
你发的原图可能暴露你家地址——聊聊图片 EXIF 隐私
前端
java1234_小锋8 小时前
【技术专题】CSS3 网页技术 - CSS3 优先级
前端·css·css3
鸿蒙开发10 小时前
共享 Schema 与 SchemaFactory
前端·后端·harmonyos
屏什么录10 小时前
录屏超过两小时就卡顿崩盘?从参数调优到代码实现,一文彻底搞定长时间录屏
前端·音视频开发