Каждый рецепт, который я нашел для создания процесса daemon в Python, включает в себя два раза (для Unix) и закрытие всех открытых файловых дескрипторов. (См. http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ для примера).
Это все достаточно просто, но у меня, похоже, проблема. На рабочей машине, которую я настраиваю, мой демон прерывается - молча, так как все открытые дескрипторы файлов были закрыты. У меня есть сложное время отладки проблемы в настоящее время, и мне интересно, как правильно улавливать и регистрировать эти ошибки.
Каков правильный способ настройки ведения журнала, чтобы он продолжал работать после демонстрации? Я просто вызываю logging.basicConfig()
второй раз после демонстрации? Каков правильный способ захвата stdout
и stderr
? Я неясен в деталях, почему все файлы закрыты. В идеале мой основной код мог бы просто вызвать daemon_start(pid_file)
, и ведение журнала продолжало бы работать.