Официантка Python в качестве службы Windows
Я написал сервер API, используя официантку и сокола на окнах. Он работает отлично, но теперь мне нужно запустить его как сервис, чтобы он контролировался. Какой лучший способ сделать это? Я посмотрел на собственную реализацию pywin32 и cherrypy. Я нахожусь в тупике при остановке официантки через питона. Я знаю, что ctrl-break используется при использовании cmd, но не уверен, что использовать при использовании python.
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
cherrypy.server.stop()
win32event.SetEvent(self.stop_event)
Я не вижу, чтобы у официантки была функция остановки, как у вишни.
Любая помощь будет отличной. Даже если это вне pywin32. Просто нужны подробности о том, как запустить официантку в качестве службы на Windows, так как есть много способов сделать это, и я не уверен, что рекомендуется.
Спасибо Энтони
1 ответ
Я не знаю, как остановить Официантку, кроме как просто убить нить. Вы пробовали, реагирует ли он на какие-нибудь сигналы?
Помимо pywin32 вы также можете попробовать использовать не сосущий сервис-менеджер NSSM
Я знаю, что это старый вопрос, но я только что разместил здесь свой вопрос и ответил на него, который также может ответить на этот вопрос.
Короче говоря, ответ - использовать pywin32 плюс подпоток.
Из-за остановки у меня тоже возникли проблемы, и ответ, который я нашел, кажется, работает чисто, но мне очень интересно получить отзывы о любых возможных осложнениях этого способа.