¿Alguien sabe de un trabajo y bien documentado implementación de un demonio usando Python? Por favor, publique un enlace aquí si conoce un proyecto que se ajuste a estos dos requisitos.aplicación del demonio en Python
Respuesta
tres opciones que pueden pensar de-
- Hacer una tarea programada que llama a la secuencia de comandos. Cron es un nombre común para un daemon de GNU/Linux que periódicamente lanza secuencias de comandos de acuerdo con un programa establecido. Agregue su secuencia de comandos en un crontab o coloque un enlace simbólico en un directorio especial y el daemon maneja el trabajo de iniciarlo en segundo plano. Puedes leer más en wikipedia. Existe una variedad de diferentes daemons cron, pero su sistema GNU/Linux debería tenerlo ya instalado.
- Enfoque pitónico (una biblioteca, por ejemplo) para que su secuencia de comandos pueda demonizarse. Sí, requerirá un bucle de evento simple (donde sus eventos son disparadores de temporizador, posiblemente proporcionados por la función de suspensión). Aquí es el que yo recomiendo el uso & - A simple unix/linux daemon in Python
- Uso pitón
multiprocessing
módulo. La esencia de tratar de bifurcar un proceso, etc., está oculta en esta implementación. Es bastante limpio.
No recomendaría 2 o 3 'porque de hecho estás repitiendo la funcionalidad de cron. El paradigma del sistema Linux es permitir que múltiples herramientas simples interactúen y resuelvan sus problemas. A menos que haya razones adicionales por las que debe crear un daemon (además de activarse periódicamente), elija el otro enfoque.
Además, si utiliza daemonize con un bucle y se produce un bloqueo, asegúrese de que tiene registros que le ayudarán a depurar. También idee una forma para que la secuencia de comandos comience de nuevo. Si bien la secuencia de comandos se agrega como una tarea cron, se activará nuevamente en el espacio de tiempo que guardó.
He estado intentando # 2 sin éxito. es como una vez que el daemon se bifurca, ya no puedo hacer referencia a mi proyecto django. pensando que es un problema de camino. ver http://stackoverflow.com/questions/3992175/python-import-module-results-in-nameerror – RyanBrady
¿siguió usted el ejemplo del código en el enlace que di? Eso funciona bien para mí. –
sí, lo seguí. descargó su daemon.py, lo subclasificó. cuando trato de importar mi proyecto django, falla. – RyanBrady
Si solo desea ejecutar un daemon, considere Supervisor, un daemon que controla y administra daemons.
Si desea ver los detalles, puede consultar Supervisor's launch script o alguna de las respuestas a este lazyweb request.
Comprobar este enlace para un demonio de doble tenedor: http://code.activestate.com/recipes/278731-creating-a-daemon-the-python-way/
El código es legible y bien documentada. Desea echar un vistazo al capítulo 13 del libro de W. Richard 'Programación avanzada en el entorno UNix' para obtener información detallada sobre demonios de Unix.
- 1. Comunicación con un demonio python en ejecución
- 2. Cómo empaquetar un demonio Python con setuptools
- 3. niño en demonio pitón
- 4. ¿Cómo controlar el proceso del demonio C++?
- 5. Creación de Python demonio - objeto 'módulo' no tiene atributo 'DaemonContext'
- 6. Ejecutar la aplicación Qt al iniciar como demonio Linux
- 7. establecer NODE_ENV para Node.js + expressjs aplicación como demonio bajo Ubuntu
- 8. modo demonio mod_wsgi, WSGIApplicationGroup y Python separación intérprete
- 9. Creación de demonio de python 2.7 con pep-3143
- 10. Tuning mod_wsgi en el modo demonio
- 11. demonio de Python no se ejecutará en segundo plano en Ubuntu
- 12. cómo hacer que un demonio proceso
- 13. Herramienta para crear un servicio demonio Java en Linux
- 14. MacOS: forzar manualmente un demonio arranque
- 15. Cómo convertir una aplicación Java existente a un servicio SYS V (demonio)
- 16. Demonio HTTP C o C++ en un hilo?
- 17. ¿Cuánto tarda mi aplicación Python en ejecutarse?
- 18. Python TCP aplicación pila
- 19. Aplicación web de Python
- 20. empaquetando una aplicación python
- 21. error durante el uso de módulo de multiprocesamiento en un demonio de pitón
- 22. Aplicación CLI interactiva de Python?
- 23. Incrustar el intérprete de python en una aplicación de Python
- 24. Obtención del estado del sistema en python
- 25. Aplicación de efectos secundarios en python
- 26. Incrustar Python en una aplicación de iPhone
- 27. Proxies en la aplicación FTP de Python
- 28. Empotrado de Python en C++ aplicación
- 29. operador del conjunto "en" Python
- 30. Comprender los hilos del daemon de Python
trabajo env? Unix? –
env es ubuntu 10.10, python 2.6 – RyanBrady