Python SimpleHTTPServer 一直宕机,我不知道为什么

Python SimpleHTTPServer keeps going down and I don't know why

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

我认为这可能只是我的代码抛出异常,因为我没有错误处理,但我添加了一个应该是一个非常通用的 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 的运行方式,请告诉我。

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

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

  1. 就像您已经提到的那样,使用诸如屏幕之类的实用程序来防止您的会话结束。
  2. 如果您真的希望 运行 长时间使用此功能,您应该查看操作系统的文档,了解如何 start/stop/enable 服务(now-a-days 大多数酷孩子们正在使用 systemd, but you might also find yourself using SysVinit 或其他初始化系统)

编辑:

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