¿Hay alguna diferencia entre un demonio y un servicio?
¿O ambos son básicamente una aplicación que reside en la memoria y está vinculada a un puerto específico y escucha / responde a las solicitudes?
¿Hay alguna diferencia entre un demonio y un servicio?
¿O ambos son básicamente una aplicación que reside en la memoria y está vinculada a un puerto específico y escucha / responde a las solicitudes?
Respuestas:
Los demonios y los servicios no son lo mismo.
Un "Servicio" podría referirse a un Daemon o un Servicio.
Un daemon es un subconjunto de servicios que siempre se ejecutan en la memoria esperando atender una solicitud.
Un servicio que no es demonio generalmente es manejado por xinetd. xinetd escucha la solicitud, luego inicia el servicio requerido para manejar la solicitud. Después de que la solicitud ha sido atendida, el servicio se detiene nuevamente.
Servicios típicos que no son daemon: rsync vsftpd
Servicios demonizados típicos: MySQL Apache
los demonios y los servicios son uno en lo mismo.
Sin embargo, ninguno tiene que estar vinculado a un puerto. HALd es un demonio, que monitorea el hardware conectado y lo monta correctamente. crond es un demonio que mantiene los trenes a tiempo.
Sí , los demonios se ejecutan en cuadros tipo Unix y los servicios se ejecutan en Windows.
Hace una década, los demonios seguían funcionando indefinidamente y los servicios no.
Hace una vez, hace un par de décadas, los demonios tampoco continuaban indefinidamente.
Entonces, realmente, quise decir No , no hay una diferencia significativa entre los servicios y los demonios.
Tenga en cuenta que 'cron' es un demonio; no está vinculado a la red en absoluto.
Dado que todas las principales distribuciones de Linux usan systemd hoy en día, es factible consultar lo que systemd dice al respecto:
de man systemd
systemd es un administrador de sistemas y servicios para sistemas operativos Linux.
...
Unidades de servicio, que inician y controlan demonios y los procesos en los que consisten. Para más detalles, consulte systemd.service (5).
...
systemctl daemon-reexec (reinicia systemd)