Escucho mucho hablar sobre Daemons ejecutándose en mi computadora Ubuntu, ¿qué son?
En resumen, un Daemon es un proceso en segundo plano .
Los demonios pueden ser simplemente programas normales que se ejecutan en segundo plano, sin embargo, la mayoría se crean al iniciar un proceso, bifurcarlo y salir del padre.
Bifurcar un proceso significa crear una copia exacta del mismo. El padre de ese proceso, si el padre real termina de inmediato, ahora es el proceso de inicio en /sbin/init
, que es lo primero que se inicia en todos los sistemas operativos tipo Unix. Ahora, el proceso se denomina Daemon, no tiene TTY asociado.
Aquí hay un ejemplo de un demonio en Python:
import sys, os, time
pid = os.fork()
# there now exist two processes
if pid > 0: # If this is the parent,
sys.exit(0) # quit.
# this is the background part:
time.sleep(5)
print "Hello, World!"
Todavía no es uno, estrictamente hablando. También tendría que cambiar el directorio de trabajo actual, la entrada y salida estándar prohibida a los archivos de registro, etc. Puedes leer los detalles sangrientos en este artículo de Wikipedia .
Si ejecuta el ejemplo, notará que, después de dos segundos, se imprime, a pesar de que el proceso que inició en la línea de comandos ha finalizado. La copia de este proceso se ejecuta 'por' init ahora.
/proc/*/fd
). Un demonio con buen comportamiento se separará por completo del tty al ceder las asas para stdout, stderr y stdin.Como puedes ver la capa del Daemon
fuente