📅  最后修改于: 2023-12-03 15:05:58.003000             🧑  作者: Mango
在Windows操作系统中,想要获取某个应用程序的进程ID(PID),可以通过其监听的端口来实现。
使用netstat
命令可以列出当前所有正在占用端口的进程情况。在命令行中输入以下命令:
netstat -ano | findstr "8080"
这里的8080
为要查找的端口号,可以根据实际需求进行更改。该命令会列出所有占用该端口的进程的详细信息,其中包括PID。例如:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5464
其中5464
即为该进程的PID。
如果需要终止某个进程,可以使用taskkill
命令。在命令行中输入以下命令:
taskkill /F /PID 5464
其中5464
为要终止的进程的PID。/F
参数用于强制结束进程。
以上方法可以手动实现获取进程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端口的进程,如果有则终止该进程。