Sé que los daemons se ejecutan en segundo plano principalmente, es decir, requieren una interacción muy inferior del usuario.¿Cuáles son las diferencias de comportamiento entre un daemon y un proceso normal?
Wikipedia lists algunos de los tipos de demonios que comúnmente existe:
- disociarse del terminal controlada
- convertirse en un líder de la sesión
- convertirse en un líder de grupo de procesos
- El permanecer en un segundo plano por bifurcan y saliendo (una o dos veces). Esto se requiere a veces para que el proceso se convierta en un líder de sesión. También permite que el proceso principal continúe su ejecución normal. Este modismo a veces se resume con la frase "tenedor y muere"
- Configurando el directorio raíz ("/") como el directorio de trabajo actual para que el proceso no mantenga ningún directorio en uso que pueda estar en un sistema de archivos montado (permitiendo que sea desmontado).
- Cambiando la umask a 0 para permitir open(), creat(), et al. llama para proporcionar sus propias máscaras de permisos y no depender de la máscara u de la persona que llama
- Cierre de todos los archivos abiertos heredados en el momento de la ejecución que el proceso principal deja abiertos, incluidos los descriptores de archivos 0, 1 y 2 (stdin, stdout, stderr). Los archivos necesarios se abrirán más tarde.
- El uso de un archivo de registro, la consola, o/dev/null como stdin, stdout y stderr
Quiero saber si puede haber diferencias en el comportamiento de un demonio tan diferenciado de un proceso normal, aparte del que mencioné en la primera línea. Ambos tipos de procesos hacen su trabajo e interactúan con el usuario dependiendo de la cantidad de interacción que necesita para hacer su trabajo.
¿Hay más para los daemons que esto?
así que si ejecuto un proceso desde un shell como '$ process &', ¿califica como daemon? – Lazer
Yo diría que no, es solo un proceso de fondo. Todavía está asociado con su terminal, incluso si su salida se está suprimiendo temporalmente, y si el programa se ejecuta indefinidamente, lo más probable es que se haya escrito teniendo en cuenta la interactividad. Un daemon se separa automáticamente del terminal en el que se inicia y se escribe con la expectativa de no interactividad. –