首页 > 解决方案 > 如何关闭使用烧瓶构建的 python 服务器

问题描述

当我运行这个简单的代码时:

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 是什么?

标签: pythonflask

解决方案


它仍然活着,因为你没有关闭它。使用 Ctrl+Z 您可以从当前终端中删除执行而不杀死进程。

要停止执行,请使用 Ctrl+C


推荐阅读