Освещение: Как изящно остановить сервер разработки Django, работающий на экземпляре Github Action Instance
Я тестирую некоторые конечные точки API моего приложения Django, запуская Playwright отдельно на машине Ubuntu на моем экземпляре Github Action. Поскольку я также хочу получить покрытие тестов, я запускаю свой сервер следующим образом:
- name: run backend server
run: poetry run coverage run ./manage.py runserver --no-reload
В результате запускается один процесс.
Теперь, чтобы собрать данные о покрытии, мне нужно изящно остановить мой django-сервер, поскольку принудительное завершение процесса также прервет coverage
, а выполнение coverage combine
приведет к ошибке.
Я пробовал следующие команды, но все они не смогли остановить сервер
kill -SIGINT $DJANGO_PID
kill -SIGTERM $DJANGO_PI
pkill -f "./manage.py runserver"
python -c "import os; import signal; print(os.kill($DJANGO_PID, signal.SIGTERM))"
Есть ли другой подход, который я могу использовать? Или, может быть, я запускаю сервер не тем способом?