我最近一直在使用 Flask 开发一些网站(在虚拟环境中的 Debian 上运行),当我进行测试时,我可以在端口上运行它,比如说发布5000。
因此我像这样运行脚本:
. env/bin/activate <- go into virtual environment
python file.py <- run python script
我将得到这样的信息:
Running on http://0.0.0.0:5000/
所以这一切都很顺利,我可以通过这个端口正常访问我的网站。但是……我的垃圾 ISP 总是会这样,每天早上 1 点左右重置某些东西。我不知道这是怎么回事,一切都运行正常,但我总是断开与任何打开的 SSH 会话的连接。这让它继续运行,我所能做的就是调用:
lsof -i
这将向我显示该过程,但如果我终止它然后重新运行它,事情就会变得奇怪。
Running on http://0.0.0.0:5000
消息仍然显示,但我无法再连接到它。我尝试更改端口号,似乎唯一有效的方法是稍后或另一天再试一次。现在我假设我的服务器上的某些东西在这段时间之间重置了,我想这可能是虚拟环境会话超时,但我找不到如何手动执行此操作,有人知道吗?
答案1
我不确定那里发生了什么,但如果你的 ssh 连接不稳定,请使用 tmux。
tmux
它将打开一个位于容器内的终端会话,您可以稍后重新连接到该容器。如果会话断开连接,该虚拟终端内运行的任何程序都将继续运行。因此,在您被踢出后,请重新 ssh 并运行
tmux attach
然后您就可以从上次中断的地方继续。
还有另外一个更老的程序也可以实现这个功能,也叫做“screen”,虽然它更常见,但却没有得到积极的维护。