Como eu mato SimpleHTTPServer de dentro de um script Python?

Estou tentando usarhttp.server para testar todos os links em um projeto Python. Eu posso fazer meu script funcionar se eu iniciar o servidor antes de executar meu script e, em seguida, o servidor parar quando eu fechar a janela do terminal. Mas eu realmente gostaria que o script iniciasse e parasse o servidor.

Fiz um script de teste para simplesmente iniciar o servidor, obter uma página e provar que o servidor está em execução e, em seguida, parar o servidor. Eu não consigo pegar o pid do servidor. Quando tento matar o pid que esse script relata depois que o script é executado, recebo uma mensagem de que não existe tal processo; mas o servidor ainda está em execução.

Como obtenho o pid correto para o servidor ou, mais geralmente, como faço para parar o servidor a partir do script?

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