这是我第一次使用 SimpleHTTPServer,老实说,这是我第一次使用一般的 Web 服务器,我遇到了一个令人沮丧的问题。我将启动我的服务器(通过 SSH),然后我将尝试访问它,一切都会好起来的。但我会在几个小时后回来,服务器将不再运行。到那时 SSH session 已经断开,所以我看不到是否有任何错误消息。 (是的,我知道我应该使用类似 screen 的东西来保存 shell 消息——现在就试试,但我需要等待它再次关闭。)
我认为这可能只是我的代码抛出异常,因为我没有错误处理,但我添加了一个应该是非常全面的 try/catch block ,但我仍然遇到这个问题。 (我觉得这可能不是错误处理的最佳方法,但我是新手...如果有更好的方法,请告诉我)
class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
# (this is the only function my request handler has)
def do_GET(self):
if 'search=' in self.path:
try:
# (my code that does stuff)
except Exception as e:
# (log the error to a file)
return
else:
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
有没有人对检查事项或诊断问题的方法有任何建议?我猜,最有可能的是我的代码只是在其他地方崩溃了……但如果有什么特别需要我了解 SimpleHTTPServer 运行方式的,请告诉我。
最佳答案
我从来没有让 SimpleHTTPServer
长时间运行过,通常我只是用它以临时方式传输几个文件,但我想它不会那么糟糕只要您的安全限制在其他地方(即防火墙)并且您不需要太大的规模。
SSH session 即将结束,这会终止您的任务(前台和后台任务)。有两种解决方案:
- 就像您已经提到的那样,使用诸如屏幕之类的实用程序来防止您的 session 结束。
- 如果你真的想让它运行更长的时间,你应该查看操作系统的文档,了解如何启动/停止/启用服务(现在大多数酷 child 都在使用 systemd ,但您可能还会发现自己在使用 SysVinit 或其他一些初始化系统)
编辑:
此链接在评论中,但我认为我应该放它 here因为它很好地回答了这个问题
关于Python SimpleHTTPServer 不断下降,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36338310/