Python SimpleHTTPServer一直在下降,我不知道为什么

时间:2016-03-31 15:59:59

标签: python web webserver simplehttpserver

这是我第一次使用SimpleHTTPServer,老实说我第一次使用Web服务器,而且我遇到了令人沮丧的问题。我将启动我的服务器(通过SSH),然后我会尝试访问它,一切都会好的。但几个小时后我会回来,服务器不再运行了。到那时SSH会话断开了,所以我无法看到是否有任何错误消息。 (是的,我知道我应该使用类似屏幕的东西来保存shell消息 - 现在就尝试一下,但我需要等待它再次停止。)

我认为可能只是我的代码抛出异常,因为我没有错误处理,但是我添加了一个非常好的try-catch try / catch块,我仍然遇到了这个问题。 (我觉得这可能不是最好的错误处理方法,但我是新手......所以请告诉我,如果有更好的方法可以做到这一点)

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的运行方式,请告诉我。

1 个答案:

答案 0 :(得分:1)

我从来没有SimpleHTTPServer长时间运行,通常我只是用它以临时方式传输几个文件,但我想它不会那么糟糕只要您的安全限制在其他地方(即防火墙),并且您不需要太大的规模。

SSH会话即将结束,这会破坏您的任务(前台和后台任务)。有两种解决方案:

  1. 与您已经提及的一样,使用屏幕等实用程序来阻止会话结束。
  2. 如果你真的想让它长时间运行,你应该查看操作系统的文档,了解如何启动/停止/启用服务(现在大多数酷孩子都是使用systemd,但您可能还会发现自己正在使用SysVinit或其他一些初始化系统)
  3. 编辑:

    此链接在评论中,但我认为我应该把它here,因为它很好地回答了这个问题

相关问题