Daemons and Services/es

From Free Pascal wiki
Jump to navigationJump to search

¿Qué son demonios, servicios y agentes?

Las diferentes denominaciones varían segun el sistema operativo, recibiendo el nombre de demoniosdaemons en sistemas Unix, servicios servicesen sistemas Windows y agentes agents para Mac OS X. El concepto es que son programas que se ejecutan sin interacción del usuario, incluso sin que este se valide. Aunque su nomenclatura difiere su función viene a ser similar: por ejemplo, los servidores www o ftp se llaman demonios bajo Linux y servicios bajo Windows. Debido a que no interactúan con el usuario directamente cierran sus descriptores stdin (entrada estandar), su stdout (salida estandar) y stderr (estandar error) a su inicio.

Con FreePascal/Lazarus se pueden escribir estos demonios/servicios que son independientes de la plataforma mediante el uso del paquete lazdaemon. Para evitar conflictos de nombres con los componentes de Delphi estas clases se han denominado 'daemons'.

Instalación de LazDaemon

Antes de comenzar a gestionarlos dentro de Lazarus es necesario instalar el paquete LazDaemon. Bien sea vía Componentes/Configurar paquetes instalados o bien abriendo/instalando el fichero .lpk directamente que se encuentra en la ubicación: lazarus/components/daemon/lazdaemon.lpk.

Este paquete instala algunos componentes nuevos y un menú de elementos en el IDE.

Classes

TCustomDaemon

TCustomDaemon es un descendiente de TDataModule que realiza todo el trabajo. Puede haber varias clases TCustomDaemons classes y/o instancias corriendo al mismo tiempo y en el el mismo proceso (multi ebra o hilo (threaded)).

TCustomDaemonApplication

TCustomDaemonApplication es un descendiente de TCustomApplication que crea TCustomDaemons. No necesita cambios. Corre bajo Windows hasta que recibe la llamada de Stopo bajo Linux hasta que recibe la señal TERM (Term Signal).

TDaemonMapper

Este componente maneja el registro de servicio. Cada instancia necesita una entrada en la propiedadDaemonDefs.