Вопрос

Я разрабатываю на cherrypy, я запускаю его из скрипта python.

Для лучшей разработки мне интересно, каков правильный способ остановить cherrypy изнутри основного процесса (а не извне с помощью ctrl-c или SIGTERM).

Я предполагаю, что мне нужно зарегистрировать функцию обратного вызова из основного приложения, чтобы иметь возможность остановить основной процесс cherrypy из рабочего потока.

Но как мне остановить основной процесс изнутри?

Это было полезно?

Решение

import sys
class MyCherryPyApplication(object):

  def default(self):
    sys.exit()
  default.exposed = True

cherrypy.quickstart(MyCherryPyApplication())

Ввод sys.exit() в любой обработчик запроса завершает работу всего сервера

Я бы ожидал, что это завершает только текущий поток, но это завершает работу всего сервера.Это то, чего я хотел.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top