You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置WebStorm退出时自动关闭终端中的前后端进程?

解决WebStorm退出后React Native Expo/Hono进程端口占用问题

问题场景

使用React Native Expo(前端端口8081)+ Node.js Hono(后端端口5000)开发,切换到WebStorm后,若未手动关闭终端内的前后端进程就退出IDE,再次打开时会出现端口被占用的报错:

后端5000端口报错

node:events:498
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use 0.0.0.0:5000
    at Server.setupListenHandle [as _listen2] (node:net:1904:16)
    at listenInCluster (node:net:1961:12)
    at doListen (node:net:2135:7)
    at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1940:8)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'EADDRINUSE',
  errno: -4091,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 5000
}

Node.js v22.4.0

前端8081端口提示

Port 8081 is being used by another process
√ Use port 8082 instead?

已尝试任务管理器杀进程、netstat/taskkill命令、WebStorm"会话结束时关闭"选项、检查自动脚本均无效,以下是针对性解决方法:


解决方法

1. 配置WebStorm关闭时强制杀死所有子进程

打开WebStorm设置(Ctrl+Alt+S):

  • 进入Appearance & Behavior > System Settings
  • 勾选Kill processes when closing the IDE,并选择All processes(确保覆盖终端启动的Node进程)
  • 同时进入Tools > Terminal,确认Close session when it ends已勾选,开启Shell integration

2. 给Hono后端添加优雅退出逻辑

在Hono服务代码中添加信号监听,确保IDE退出时进程能正常关闭:

import { Hono } from 'hono';
import { serve } from '@hono/node-server';

const app = new Hono();
const server = serve({
  fetch: app.fetch,
  port: 5000
});

// 监听中断/终止信号,优雅关闭服务器
process.on('SIGINT', () => {
  server.close(() => {
    console.log('Hono server closed gracefully');
    process.exit(0);
  });
});

process.on('SIGTERM', () => {
  server.close(() => {
    console.log('Hono server closed gracefully');
    process.exit(0);
  });
});

3. 彻底清理Node.js进程(Windows环境)

如果netstat找到的PID无法杀死,直接批量终止所有Node进程:

taskkill /F /IM node.exe

注意:该命令会关闭所有正在运行的Node.js进程,若有其他Node项目在运行请谨慎执行

4. 切换WebStorm终端类型

默认的PowerShell/CMD可能存在子进程管理问题,切换到Git Bash或WSL终端:

  • 打开Settings > Tools > Terminal
  • 修改Shell path为Git Bash路径(如C:\Program Files\Git\bin\bash.exe)或wsl.exe(需安装WSL)

5. 排查WebStorm自动启动任务

再次确认无隐藏的自动运行配置:

  • 进入Run > Edit Configurations,检查所有配置的Launch before launch列表,删除不必要的自动启动项
  • 进入Settings > Tools > Startup Tasks,确保没有添加自动启动的任务

内容的提问来源于stack exchange,提问作者Assaf Fogelman אסף פוגלמן

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:35:15