我怀疑程序正在我的机器上侦听端口8000
。
当我运行以下命令时,出现此错误:
> python -m SimpleHTTPServer
# Lots of python error
socket.error: [Errno 98] Address already in use
如果我使用其他端口(8000
是默认设置),则Web服务器运行正常。
如果我从命令行运行wget localhost:8000
,它将返回404 Not Found
。
我可以做什么(或者有什么工具可用)来查找正在侦听端口8000
的程序,以及从那里配置该程序的程序?
打开终端并输入
lsof -i :8000
该命令将列出该端口使用PID的应用程序。
(如果没有结果通过sudo
运行,因为您可能无权访问某些进程。)
例如,使用端口8000(python3 -m http.server
):
$ lsof -i :8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3 3269 user 3u IPv4 1783216 0t0 TCP *:8000 (LISTEN)
端口22(SSH):
$ sudo lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 998 root 3u IPv4 1442116 0t0 TCP *:ssh (LISTEN)
sshd 998 root 4u IPv6 1442118 0t0 TCP *:ssh (LISTEN)
希望有所帮助。