Я выполняю потоковую передачу данных с помощью диспетчера контекста, чтобы закрыть соединение при выходе из программы. Я запускаю свою программу как демон в фоновом режиме.
Как я могу заставить диспетчер контекста обрабатывать случай, когда демон прерывается SIGINT или SIGTERM или любым сигналом прерывания, отправленным командой kill?
Я запускаю Python 3 на Raspberry Pi и Ubuntu.
Обновлять
Я видел это: Как записать SIGINT в Python? Что полезно, но я не уверен, как использовать это с диспетчером контекста python? т.е. скажем, у меня есть объект, который я создал как диспетчер контекста:
class Sensor:
def __init__(self, name: str):
self.name = name
def __enter__(self):
self._connect()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.close()
Я использую этот объект внутри скрипта, который запускается как демон. Есть ли питонический способ указать, что функция __ exit__ должна вызываться также в исключениях SIGINT и SIGTERM?
Извините, если вы не поняли, как работают исключения и прерывания сигнала в python, и что мой вопрос не имеет смысла
SIGINT
? - person Davis Herring   schedule 29.06.2020self.close
. - person mkrieger1   schedule 30.06.2020