¿Cómo elimino SimpleHTTPServer desde un script de Python?

Estoy tratando de usarhttp.server para probar todos los enlaces en un proyecto de Python. Puedo hacer que mi script funcione si inicio el servidor antes de ejecutar mi script, y luego el servidor se detiene cuando cierro la ventana del terminal. Pero realmente me gustaría que el script en sí inicie y detenga el servidor.

Hice una secuencia de comandos de prueba para simplemente iniciar el servidor, obtener una página y probar que el servidor se está ejecutando y luego detener el servidor. Parece que no puedo conseguir el pid del servidor. Cuando intento eliminar el pid que este script reporta después de que se ejecuta el script, recibo un mensaje que indica que no hay tal proceso; pero el servidor todavía se está ejecutando.

¿Cómo obtengo el pid correcto para el servidor o, más generalmente, cómo detengo el servidor de la secuencia de comandos?

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)

Respuestas a la pregunta(5)

Su respuesta a la pregunta