我在命令提示符下在 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 环境中运行