我正在尝试用它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)