我最近一直在使用 Flask 开发一些站点(在 virtualenv 中的 debian 上运行),当我测试时,我可以在端口上运行它,比如说 post 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
消息仍然显示,但我无法再连接到它。我试过更改端口号,似乎唯一可行的方法是稍后或改天再试一次。现在我假设我的服务器上的某些东西在这些时间之间重置,我想这可能是 virtualenv 会话超时,但我无法找到如何手动执行此操作,有人知道吗?
我不确定那里发生了什么,但如果你的 ssh 连接不稳定,请使用 tmux。
它将打开一个终端会话,该会话位于您稍后可以重新连接的容器内。如果会话断开连接,在该虚拟终端内运行的任何内容都将继续运行。所以在你被踢出之后,ssh 回来运行
然后你会从你离开的地方继续。
还有另一个较旧的程序可以执行此操作,也称为“屏幕”,但虽然更常见,但并未得到积极维护。