📜  windows通过端口获取pid (1)

📅  最后修改于: 2023-12-03 15:05:58.003000             🧑  作者: Mango

Windows通过端口获取PID

在Windows操作系统中,想要获取某个应用程序的进程ID(PID),可以通过其监听的端口来实现。

1. 查找占用端口的进程ID

使用netstat命令可以列出当前所有正在占用端口的进程情况。在命令行中输入以下命令:

netstat -ano | findstr "8080"

这里的8080为要查找的端口号,可以根据实际需求进行更改。该命令会列出所有占用该端口的进程的详细信息,其中包括PID。例如:

  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       5464

其中5464即为该进程的PID。

2. 终止指定进程

如果需要终止某个进程,可以使用taskkill命令。在命令行中输入以下命令:

taskkill /F /PID 5464

其中5464为要终止的进程的PID。/F参数用于强制结束进程。

3. 自动化实现

以上方法可以手动实现获取进程PID的功能,但在实际开发中需要自动化实现。可以通过编写程序来实现自动化查询及终止进程的功能。

以下代码为使用Python实现自动化查询端口占用情况及终止指定进程的样例:

import os

def get_port_pid(port):
    result = os.popen(f"netstat -ano | findstr \"{port}\"").read()
    lines = result.split("\n")
    for line in lines:
        items = line.split()
        if len(items) >= 5:
            pid = items[-1]
            if pid.isdigit():
                return int(pid)
    return None

def kill_process(pid):
    os.system(f"taskkill /F /PID {pid}")

if __name__ == "__main__":
    pid = get_port_pid(8080)
    if pid is not None:
        print(f"Port 8080 is occupied by process {pid}")
        kill_process(pid)
        print(f"Process {pid} has been terminated")
    else:
        print("Port 8080 is not occupied")

该代码会先查询是否存在占用8080端口的进程,如果有则终止该进程。