diff options
| -rw-r--r-- | project/uptimeservice.py | 18 | ||||
| -rwxr-xr-x | radiodiodibot | 2 |
2 files changed, 19 insertions, 1 deletions
diff --git a/project/uptimeservice.py b/project/uptimeservice.py index 252dc17..0cda612 100644 --- a/project/uptimeservice.py +++ b/project/uptimeservice.py @@ -3,13 +3,22 @@ import socketserver import logging import threading +class UptimeRequestHandler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + self.send_response(200) + self.send_header("Content-type", "text/plain") + self.send_header("Content-Length", "0") + self.end_headers() class UptimeService(threading.Thread): + _instance = None + def __init__(self, port): super(UptimeService, self).__init__() + UptimeService._instance = self self.port = port - self._handler = http.server.SimpleHTTPRequestHandler + self._handler = UptimeRequestHandler self._httpd = socketserver.TCPServer(("", port), self._handler) @@ -20,3 +29,10 @@ class UptimeService(threading.Thread): def run(self): self.serve() + def stop(self): + self._httpd.shutdown() + + @staticmethod + def stop_services(): + if UptimeService._instance is not None: + UptimeService._instance.stop() diff --git a/radiodiodibot b/radiodiodibot index 903881c..0d067dd 100755 --- a/radiodiodibot +++ b/radiodiodibot @@ -12,6 +12,8 @@ from project import uptimeservice def sigint_handler(signal, frame): """Exit gracefully when receiving an interrupt signal""" + logging.info("Stopping uptime services (if any)...") + uptimeservice.UptimeService.stop_services() print("Exiting radiodiodibot...") sys.exit(0) |
