来源: GPT, 豆包
1.根据占用端口杀死进程
import psutil
def kill_process_by_port(port):
for proc in psutil.process_iter(['pid', 'name']):
try:
for conn in proc.connections():
if conn.laddr.port == port:
print(f"Killing process {proc.name()} (PID: {proc.pid})")
proc.kill()
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
if __name__ == '__main__':
port_to_kill = 8000 # 替换为你要杀死的进程所使用的端口号
kill_process_by_port(port_to_kill)
2.检测端口是否占用
import subprocess
# 查看端口是否占用, win专用
def check_port(l_port):
result = subprocess.run(('netstat', '-ano'), capture_output=True, text=True,
creationflags=subprocess.CREATE_NO_WINDOW)
output = result.stdout
lines = output.split('\n')
for line in lines:
# 注意,这里要确保状态是 LISTENING 才表示端口被占用
if str(l_port) in line and 'LISTENING' in line:
return True
return False
if __name__ == '__main__':
check_port(8000)