如何关闭使用flask构建的Python服务器

2024-05-04 16:26:31 发布

您现在位置: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是什么?在


Tags: to方法name程序appflaskaddressbe
3条回答

您将有另一个进程监听端口8080。你可以看看那是什么然后杀了它。可以使用netstat -tulpn找到侦听端口的进程。在执行此操作之前,请检查以确保没有另一个终端窗口与正在运行的实例一起打开。在

因为你不能关上它。使用Ctrl+Z可以在不终止进程的情况下从当前终端删除执行。在

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

如果键入Control+Z,则可以键入fg将该进程再次移动到前台,并使用Control+C终止它。Z只需将当前进程移动到后台(bg)。jobs命令将显示正在运行的作业,包括后台作业。在

如果你不再打开窗户,你可以:

ps aux | grep 8080

这将显示进程及其ID

然后可以使用以下方法终止进程:

^{2}$

相关问题 更多 >