📅  最后修改于: 2023-12-03 14:55:27.740000             🧑  作者: Mango
在进行 Django 开发时,有时候需要停止正在运行的服务。而停止服务的常规方法是杀死占用端口的进程。本文将介绍如何在 Python 中杀死端口。
psutil
是一款 Python 模块,可以获取当前系统的进程信息并进行管理。我们可以使用 psutil
模块来结束指定端口占用的进程。
import psutil
def kill_port(port):
for proc in psutil.process_iter():
try:
conns = proc.connections()
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
else:
for conn in conns:
if conn.laddr.port == port and conn.status == 'LISTEN':
proc.kill()
上述代码中,我们定义了一个名为 kill_port
的函数,该函数的作用是根据要杀死的端口号来结束进程。函数中使用了 psutil
模块来获取系统中所有进程的信息,并筛选出占用指定端口的进程并结束它。
在 Linux 系统中,我们还可以使用 fuser
命令来查找并结束指定端口的进程。在 Python 中,我们可以使用 subprocess
模块来调用系统命令。
import subprocess
def kill_port(port):
subprocess.Popen(['fuser', '-k', str(port)+'/tcp'])
上述代码中,我们定义了一个名为 kill_port
的函数,该函数的作用是根据要杀死的端口号来结束进程。函数中使用了 subprocess
模块来调用系统命令,执行 fuser
命令来查找并结束占用指定端口的进程。
本文介绍了两种在 Python 中杀死占用指定端口的进程的方法,分别是使用 psutil 模块和使用 fuser 命令。如果你在使用 Django 进行开发时需要结束服务,可以参考本文的方法来尝试。