如何删除已分配给端口的当前进程/应用程序?
例如:localhost:8080
如何删除已分配给端口的当前进程/应用程序?
例如:localhost:8080
当前回答
我为此写了一个很小的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);
})
}
});
}
其他回答
有两种方法可以终止进程
选项01 -最简单和最简单 要求:npm@5.2.0^版本 以管理员身份打开命令提示符,并使用端口发出以下命令(这里的端口是8080)
npx kill-port 8080
选项02 -最常用
步骤1 以管理员身份打开Windows命令提示符 一步02 用下面的命令找到你想要杀死的端口的PID
netstat -ano|findstr "PID :8080"
TCP 0.0.0.0:8080 0.0.0.0:0监听18264
一步03 用下面的命令杀死上面收到的PID(在我的例子中PID是18264)
taskkill /PID 18264 /f
以管理员身份运行cmd。然后在里面输入这个代码。
netstat -ano | findstr :<8080>
然后您可以看到PID在端口上运行。然后复制PID编号。(PID是帮助识别硬件产品或已注册软件产品的唯一数字。)并键入下面的代码行和按enter。
taskkill /PID <Enter the copied PID Number> /F
在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
你可以运行一个bat文件:
@ECHO OFF
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "9797" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine
:SkipLine
echo ProcessId to kill = %ProcessId%
taskkill /f /pid %ProcessId%
PAUSE
如果你正在使用giitbash
第一步:
netstat -ano | findstr :8080
第二步:
taskkill /PID typeyourPIDhere /F
(/F强制终止进程)