github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/tests/includes/server.sh (about) 1 start_server() { 2 local path 3 4 path=${1} 5 6 ( 7 cd "${path}" || exit 1 8 python3 -m http.server 8666 >"${TEST_DIR}/server.log" 2>&1 & 9 SERVER_PID=$! 10 11 echo "${SERVER_PID}" >"${TEST_DIR}/server.pid" 12 13 # Sleep to ensure the python server is up and running correctly, as it's 14 # a daemon service (&) we can't actually see if it's up easily. 15 sleep 5 16 ) 17 } 18 19 kill_server() { 20 if [[ ! -f "${TEST_DIR}/server.pid" ]]; then 21 return 22 fi 23 24 pid=$(cat "${TEST_DIR}/server.pid" | head -n 1 || echo "NOT FOUND") 25 if [[ ${pid} == "NOT FOUND" ]]; then 26 return 27 fi 28 29 echo "==> Killing server" 30 kill -9 "${pid}" >/dev/null 2>&1 || true 31 echo "==> Killed server (PID is $(green "${pid}"))" 32 }