| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- """查找并杀掉占用端口或一直运行的 Python 进程"""
- import subprocess
- import sys
- def find_processes_by_port(port):
- """查找占用指定端口的进程"""
- try:
- result = subprocess.run(
- ["netstat", "-ano"],
- capture_output=True,
- text=True,
- shell=True
- )
- pids = []
- for line in result.stdout.split('\n'):
- if f':{port}' in line and 'LISTENING' in line:
- parts = line.split()
- if parts:
- pid = parts[-1]
- if pid.isdigit():
- pids.append(int(pid))
- return pids
- except Exception as e:
- print(f"Error finding processes: {e}")
- return []
- def kill_process(pid):
- """杀掉指定 PID 的进程"""
- try:
- subprocess.run(["taskkill", "/F", "/PID", str(pid)], check=True)
- print(f"✓ Killed process {pid}")
- return True
- except Exception as e:
- print(f"✗ Failed to kill {pid}: {e}")
- return False
- if __name__ == "__main__":
- print("查找占用 8000 端口的进程...")
- pids = find_processes_by_port(8000)
- if pids:
- print(f"找到 {len(pids)} 个进程: {pids}")
- for pid in pids:
- kill_process(pid)
- else:
- print("没有找到占用 8000 端口的进程")
- print("\n查找占用 8001 端口的进程...")
- pids = find_processes_by_port(8001)
- if pids:
- print(f"找到 {len(pids)} 个进程: {pids}")
- for pid in pids:
- kill_process(pid)
- else:
- print("没有找到占用 8001 端口的进程")
|