终止正在监听端口 8080 的进程

终止正在监听端口 8080 的进程

我在命令提示符下在 Win7 32 位上执行以下操作:

netstat -ano | findstr 8080

它返回:

TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1896

我怎样才能终止这个过程?

答案1

在 Windows 中你可以使用taskkill /pid 1896

请参阅参考资料http://technet.microsoft.com/en-us/library/bb491009.aspx

答案2

如果你正在使用Git BASH然后你可以尝试下面的命令

taskkill //pid 1896

这里不要有多余的反斜杠,否则会抛出无效参数的错误。

希望它有帮助!

答案3

我在脚本中使用了上面的 Josep 命令,因为我们遇到了一个问题,MS werfault.exe(Dr Watson)从我们的代理服务器窃取了端口 8080。

这是个很棒的命令,但 find "8080" 还会查找端口 18080 或包含 8080 的进程 ID。因此可能会终止错误的任务。

可以通过将查找字符串更改为“:8080”来进行改进(注意尾随空格)

谢谢

答案4

  • 您可以找到此终止脚本的源代码这里

  • 可以找到别名初始化的源代码这里

  • 以下 bash 脚本 ( kill-port.sh) 在调用时成功终止端口。

  • 建议您为该 shell 脚本创建一个别名

    • alias kill-port=$pathToScript/kill-port.sh
  • 创建别名将在终端中启用以下表达式

    • kill-port 8080
#!/bin/bash
if [ "$1" ]
  then
    processIds=$(netstat -a -n -b -o | grep $1 | sed -e "s/[[:space:]]\+/ /g" | cut -d ' ' -f6)        
    { #try 
        for processId in $processIds; do
          taskkill /PID /F "$processId" 2>/dev/null
        done 
    } || { # catch
        for processId in $processIds; do
          taskkill //F //PID "$processId"
        done 
    }
fi
  • 为什么要有try/catch?
    • 尝试block 是尝试在非 gitbash 环境中终止指定端口。
    • 抓住块音译尝试gitbash 终端的 cygwin 表达式块
    • 这允许脚本在任何 bash 或 cygwin 环境中运行

相关内容