Wie kann ich SimpleHTTPServer in einem Python-Skript beenden?

Ich versuche es zu benutzenhttp.server um alle Links in einem Python-Projekt zu testen. Ich kann mein Skript zum Laufen bringen, wenn ich den Server starte, bevor ich mein Skript ausführe. Der Server stoppt dann, wenn ich das Terminalfenster schließe. Aber ich möchte wirklich, dass das Skript selbst den Server startet und stoppt.

Ich habe ein Testskript erstellt, um einfach den Server zu starten, eine Seite abzurufen und zu beweisen, dass der Server ausgeführt wird, und dann den Server anzuhalten. Ich kann anscheinend die PID des Servers nicht ermitteln. Wenn ich versuche, die von diesem Skript gemeldete PID zu beenden, nachdem das Skript ausgeführt wurde, erhalte ich die Meldung, dass es keinen solchen Prozess gibt. aber der Server läuft noch.

Wie erhalte ich die richtige PID für den Server oder wie halte ich den Server im Allgemeinen vom Skript ab?

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)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage