我的docker开了33333端口,今天在使用时报错:
OSError: Cannot find empty port in range: 33333-33333.
明显这个端口是被占用了。
思路很简单:查看哪个进程占用的这个端口,将其 kill 掉。
尝试1
使用ps | grep 33333
指令,却什么也找不到。
尝试2
使用ps aux | grep 33333
指令,也是找不到。
ps aux
是Linux系统中一个非常常用的命令,用于查看系统中当前运行的进程状态。
之前进程里我是能看到端口号的,现在却没有,有点怪。
尝试3
psutil
是一个功能强大的库,可以用来获取系统的运行状态,包括 CPU、内存、磁盘、网络等信息。可以使用它来查看哪些端口被哪些进程占用了。
pip install psutil
import psutil
def check_port_usage(port):
for conn in psutil.net_connections():
if conn.laddr.port == port:
pid = conn.pid
if pid:
process = psutil.Process(pid)
print(f"Port {port} is used by PID {pid}, process name: {process.name()}")
check_port_usage(33333)
顺利获取占用这个端口的PID,将其kill掉,问题解决
kill -9 74795