The log from http-server is lost when the process is killed. Fix this by
flushing explicitly in a signal handler.
from functools import partial
from http import HTTPStatus
from http.server import HTTPServer, SimpleHTTPRequestHandler
-
import os
+import signal
import socket
import sys
sys.exit(0)
+def on_terminate(signum, frame):
+ sys.stdout.flush()
+ sys.stderr.flush()
+ sys.exit(128 + signum)
+
+
if __name__ == "__main__":
import argparse
os.chdir(args.directory)
+ signal.signal(signal.SIGINT, on_terminate)
+ signal.signal(signal.SIGTERM, on_terminate)
+
run(
HandlerClass=handler_class,
ServerClass=HTTPServer,