如何删除已分配给端口的当前进程/应用程序?

例如:localhost:8080


当前回答

下面是在WSL2中执行此操作的脚本

PIDS=$(cmd.exe /c netstat -ano | cmd.exe /c findstr :$1 | awk '{print $5}')
for pid in $PIDS
do
    cmd.exe /c taskkill /PID $pid /F
done

其他回答

在Windows PowerShell版本1或更高版本中停止端口3000上的进程:

Stop-Process (,(netstat -ano | findstr:3000).split() | foreach {$[$.length-1]}) -Force


根据@morganpdx的建议,这里有一个更像powershell的更好的版本:

Stop-Process -Id (get - netttcpconnection -LocalPort 3000)。OwningProcess force

步骤1:

打开cmd.exe(注意:您可能需要以管理员身份运行它,但这并不总是必要的),然后运行以下命令:

网络统计 -什么 |查找 :<PORT>

(将<PORT>替换为您想要的端口号,但保留冒号)

红色圈出的区域显示PID(进程标识符)。找到正在使用所需端口的进程的PID。

步骤2:

接下来,执行如下命令:

taskkill /PID <PID> /F

(这次没有冒号)

最后,您可以重新执行“步骤1”中的命令来检查操作是否成功。如果它是成功的,你不应该看到任何更多的搜索结果的端口号。

Windows 10/11默认工具:

第一步:

以管理员身份打开Windows PowerShell

第二步:

查找8080端口的PID (ProcessID):

netstat -aon | findstr 8080

TCP 0.0.0.0:8080 0.0.0.0:0 listen 77777

第三步:

杀死僵尸进程:

taskkill /f /pid 77777

“77777”是你的PID

第一步

netstat -vanp tcp | grep 8888

例子

tcp4     0      0    127.0.0.1.8888   *.*    LISTEN      131072 131072  76061    0
tcp46    0      0    *.8888           *.*    LISTEN      131072 131072  50523    0

第二步:找到你的pid并杀死他们

对我来说

sudo kill -9 76061 50523

我为此写了一个很小的node js脚本。就像这样运行它: node killPort.js 8080或任何你需要杀死的端口。保存如下文件到killPort.js文件中:

const { exec } = require('child_process');
const fs = require(`fs`);

const port = process.argv.length > 2 ? process.argv[2] : ``;
if (!port || isNaN(port)) console.log(`port is required as an argument and has to be a number`);
else {
    exec(`netstat -ano | findstr :${port}`, (err, stdout, stderr) => {
        if (!stdout) console.log(`nobody listens on port ${port}`);
        else {
            const res = stdout.split(`\n`).map(s => s.trim());
            const pid = res.map(s => s.split(` `).pop()).filter(s => s).pop();
            console.log(`Listener of ${port} is found, its pid is ${pid}, killing it...`);
            exec(`taskkill /PID ${pid} /F`, (err, stdout, stderr) => {
                if (!stdout) console.log(`we tried to kill it, but not sure about the result, please run me again`);
                else console.log(stdout);
            })
        }
    });
}