当我运行这个简单的代码时:
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是什么?在
您将有另一个进程监听端口8080。你可以看看那是什么然后杀了它。可以使用
netstat -tulpn
找到侦听端口的进程。在执行此操作之前,请检查以确保没有另一个终端窗口与正在运行的实例一起打开。在因为你不能关上它。使用Ctrl+Z可以在不终止进程的情况下从当前终端删除执行。在
要停止执行,请使用Ctrl+C
如果键入Control+Z,则可以键入
fg
将该进程再次移动到前台,并使用Control+C终止它。Z只需将当前进程移动到后台(bg
)。jobs
命令将显示正在运行的作业,包括后台作业。在如果你不再打开窗户,你可以:
这将显示进程及其ID
然后可以使用以下方法终止进程:
^{2}$相关问题 更多 >
编程相关推荐