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

例如:localhost:8080


当前回答

netstat -ano | findstr :PORT
kill PI

其他回答

netstat -ano | findstr :PORT
kill PI

我为此写了一个很小的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);
            })
        }
    });
}

我知道这是一个很老的问题,但发现很容易记住,快速命令杀死使用端口的应用程序。

要求:npm@5.2.0^版本

npx kill-port 8080

你也可以在这里阅读更多关于kill-port的内容:https://www.npmjs.com/package/kill-port

让我们自动化!

如果你像我一样经常遇到这个问题,创建一个.bat文件并运行它来结束进程。

创建一个bat文件"killport.bat"

set /P port="Enter port : "
echo showing process running with port %port%

netstat -ano|findstr "PID :%port%"

set /P pid="Enter PID to kill : "

taskkill /pid %pid% /f

set /P exit="Press any key to exit..."

通过双击和运行此文件

输入端口号(然后它将列出带有PID的进程) 输入PID kill

Done

(可选)

设置为path environment,以便您可以从任何地方访问此文件。

你很可能知道如何给env添加一个新路径。但如果你不这样做,你可以这样做

1 / 4

在开始菜单上搜索ENV

2 . 4步

选择环境变量

3 / 4步骤

选择“path”,然后点击编辑按钮

4 / 4步骤

点击“新建”添加。bat文件的存放路径。自从我把它存到…我正在添加这个路径。您的路径将取决于您保存该文件的位置。

打开CMD并测试。请记住,您的文件名将运行此文件的单词。因为我把。bat文件保存为'killport.bat' => 'killport'是运行它的词。

如果你喜欢! 在这里分享你是如何做到的

下面是在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