#python
Вопрос:
Я ищу простой веб-сервер Python, который легко убить из кода. Прямо сейчас я играю с Бутылкой, но я не могу найти никакого способа убить ее в коде. Если вы знаете, как убить бутылку (в коде, без Ctrl C), это было бы супер, но я возьму все, что является Python, простым и убиваемым.
Ответ №1:
Мы используем это.
import os
os._exit(3)
Чтобы разбиться «контролируемым» способом.
Комментарии:
1. @Daniel Straight: Мы назвали это «контролируемым, если вы не возражаете против последствий». Мы используем его в основном для автоматического тестирования, где неполные записи в журнале или разбитые базы данных не имеют значения.
2. К счастью, я не веду ни журнал, ни базу данных (ни дисковый ввод-вывод), так что это должно быть хорошо.
Ответ №2:
Если вы хотите убить процесс из Python на Unix-подобной платформе, вы можете отправлять сигналы, эквивалентные Ctrl-C на консоли, используя модуль Pythons os, например
# Get this processes PID
pid_of_process = os.getpid()
# Send the interrupt signal to this process
os.kill(pid_of_process, signal.SIGINT)
Ответ №3:
Поднимите исключение и обработайте его в главном или используйте sys.exit
Комментарии:
1. Оба они, кажется, проглочены Бутылкой.
Ответ №4:
Попробуйте положить
import sys
наверху и команда
sys.exit(0)
В коде, который обрабатывает «запрос на убийство».