Jak zabić SimpleHTTPServer z poziomu skryptu Pythona?

Próbuję użyćhttp.server przetestować wszystkie linki w projekcie Pythona. Mogę uruchomić mój skrypt, jeśli uruchomię serwer przed uruchomieniem skryptu, a następnie serwer zatrzyma się po zamknięciu okna terminala. Ale naprawdę chciałbym, aby sam skrypt uruchomił i zatrzymał serwer.

Zrobiłem skrypt testowy, aby po prostu uruchomić serwer, pobrać stronę i udowodnić, że serwer działa, a następnie zatrzymać serwer. Nie mogę uzyskać pid serwera. Kiedy próbuję zabić pid, że ten skrypt zgłasza po uruchomieniu skryptu, otrzymuję komunikat, że nie ma takiego procesu; ale serwer nadal działa.

Jak uzyskać poprawny pid dla serwera lub, bardziej ogólnie, jak zatrzymać serwer ze skryptu?

import os
import requests
from time import sleep

# Start server, in background.
print("Starting server...")
os.system('python -m http.server &')
# Make sure server has a chance to start before making request.
sleep(1)

print "Server pid: "
os.system('echo $')

url = 'http://localhost:8000/index.html'
print("Testing request: ", url)
r = requests.get(url)
print("Status code: ", r.status_code)

questionAnswers(5)

yourAnswerToTheQuestion