Как мне убить SimpleHTTPServer из скрипта Python?

Я пытаюсь использоватьhttp.server проверить все ссылки в проекте Python. Я могу заставить мой скрипт работать, если я запускаю сервер до запуска моего скрипта, а затем сервер останавливается, когда я закрываю окно терминала. Но мне бы очень хотелось, чтобы сам скрипт запускался и останавливал сервер.

Я сделал тестовый скрипт, чтобы просто запустить сервер, получить страницу и доказать, что сервер работает, а затем остановить сервер. Я не могу получить pid сервера. Когда я пытаюсь уничтожить pid, который этот скрипт сообщает после запуска скрипта, я получаю сообщение, что такого процесса нет; но сервер все еще работает.

Как получить правильный pid для сервера или, в более общем смысле, как остановить сервер из сценария?

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)

Ответы на вопрос(5)

Ваш ответ на вопрос