Skip to content

windows和linux中根据端口杀死进程的方法

Windows 系统根据端口号终止进程的方法

命令行工具(CMD/PowerShell)

  1. 查找占用端口的进程ID(PID)

    • 打开命令提示符(CMD)或 PowerShell:
      • Win + R,输入 cmdpowershell,按回车。
    • 输入以下命令(以端口号 8080 为例):
      bash
      netstat -ano | findstr "8080"
      • 输出示例:TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1234
      • 最后一列 1234 即为占用端口的进程PID。
  2. 终止进程

    • 使用 taskkill 命令强制终止进程:
      bash
      taskkill /F /PID 1234
      • /F 表示强制终止。

Linux 系统根据端口号终止进程的方法

方法一:使用 lsof 命令

  1. 查找占用端口的进程ID(PID)

    bash
    sudo lsof -i :8080
    • 输出示例:COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      • 第二列 PID 即为目标进程ID。
  2. 终止进程

    • 优先使用默认信号终止(允许进程清理资源):
      bash
      sudo kill <PID>
    • 若进程无响应,强制终止:
      bash
      sudo kill -9 <PID>

方法二:使用 netstatss 命令

  1. 查找PID

    • 使用 netstat
      bash
      sudo netstat -tulnp | grep :8080
    • 或使用更高效的 ss
      bash
      sudo ss -tulnp | grep :8080
    • 输出示例:tcp LISTEN 0 128 *:8080 *:* users:(("java",pid=1234,fd=45))
      • pid=1234 即为进程ID。
  2. 终止进程

    bash
    sudo kill <PID>   # 默认终止
    sudo kill -9 <PID> # 强制终止

方法三:直接通过端口号终止进程(无需手动查PID)

  • 使用 fuser 命令:
    bash
    sudo fuser -k 8080/tcp
    • -k 表示直接终止占用端口的进程。

注意事项

  1. 权限问题

    • Linux 中可能需要 sudo 权限才能查看或终止其他用户的进程。
    • Windows 中建议以管理员身份运行CMD/PowerShell。
  2. 强制终止的风险

    • kill -9taskkill /F 会立即终止进程,可能导致数据丢失。优先使用默认终止方式。
  3. 验证进程是否终止

    • 重新运行查找命令(如 lsof -i :8080),若无输出则表示进程已终止。
/src/technology/dateblog/2025/06/20250604-windows%E5%92%8Clinux%E4%B8%AD%E6%A0%B9%E6%8D%AE%E7%AB%AF%E5%8F%A3%E6%9D%80%E6%AD%BB%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%96%B9%E6%B3%95.html