Benachrichtigt werden, wenn Python Skript nicht mehr läuft (Python Uptime Test)

Es bietet sich an, Push Tests zu verwenden, z.B. bei Statuscake („PUSH tests are like reverse testing. Instead of our servers checking your site is up, your servers ping us to say they are. Useful for things like cron job validation.“)

Dazu macht man einfach sowas wie hier:

def send_hello():
    while True:
        try:
            requests.get("https://push.statuscake.com/?PK=foobar&TestID=foobar&time=0", timeout=30)
        except:
            pass
        time.sleep(60 * 5)
        
t = threading.Thread(target = send_hello)
t.start()

Man könnte aber auch einen kleinen Webserver in einem extra Thread aufmachen und den dann anpingen lassen. Ungefähr so:

import threading
from http.server import BaseHTTPRequestHandler, HTTPServer

class HelloWorldHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"Hello, World!")

threading.Thread(target=lambda: HTTPServer(('', 8080), HelloWorldHandler).serve_forever(), daemon=True).start()