当我运行这段简单的代码时:
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def index(): return 'this is the homepage'
if __name__ == "__main__": app.run(debug=True, host="0.0.0.0",port=8080)
它工作得很好,但当我在终端中使用ctrl+z关闭它并尝试再次运行它时,我得到了OSError: [Errno 98] Address already in use
因此,我尝试更改端口地址并重新运行它,这对我输入的一些端口号有效。但是我想知道一个优雅的方法来清除前一个程序正在使用的地址,以便它对当前程序是免费的。还有什么是关闭服务器并释放端口地址的合适方法。
请告诉我一种简单的方法,或者完整地解释使用的方法,因为我读过类似问题的解决方案,但对它一无所知。
当我运行netstat -tulpn
时,输出是:
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:3689 0.0.0.0:* LISTEN 4361/rhythmbox
tcp6 0 0 ::1:631 :::* LISTEN -
tcp6 0 0 :::3689 :::* LISTEN 4361/rhythmbox
udp 0 0 0.0.0.0:5353 0.0.0.0:* 3891/chrome
udp 0 0 0.0.0.0:5353 0.0.0.0:* -
udp 0 0 0.0.0.0:39223 0.0.0.0:* -
udp 0 0 127.0.1.1:53 0.0.0.0:* -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 0.0.0.0:631 0.0.0.0:* -
udp 0 0 0.0.0.0:58140 0.0.0.0:* -
udp6 0 0 :::5353 :::* 3891/chrome
udp6 0 0 :::5353 :::* -
udp6 0 0 :::41938 :::* -
我不知道该怎么解释它。
ps aux | grep 8080
的输出为:
shreyash 22402 0.0 0.0 14224 928 pts/2 S+ 01:20 0:00 grep --color=auto 8080
我不知道该怎么解释它。哪一个是进程名称,它的id是什么?
发布于 2018-06-17 03:37:13
它还活着是因为你没把它关起来。使用Ctrl+Z,您可以在不终止进程的情况下从当前终端中删除执行。
要停止执行,请使用Ctrl+C
发布于 2020-08-04 19:16:32
你需要输入
fuser -n tcp -k 8080
终止在端口8080上运行的flask进程
发布于 2018-06-17 03:37:50
您将拥有另一个监听端口8080的进程。你可以查看它是什么,然后杀死它。您可以找到使用netstat -tulpn
监听端口的进程。在执行此操作之前,请检查以确保没有使用正在运行的实例打开另一个终端窗口。
https://stackoverflow.com/questions/50891073
复制相似问题