Daemons and Services/pt
O que são daemons e services ?
Unix daemons e windows services são programas rodando sem interação do usuário. Por exempo servidores www ou ftp são chamados de daemons sob linux e serviços sob windows. Por que eles não interage com o usuário diretamente, eles fecham seus stdin, stdout, stderr descritores quando iniciam.
Com Free Pascal, Lazarus é possível escrever estes daemons/services independente de plataforma através do pacote lazdaemon. Para evitar conflitos de nome com os componentes Delphi os componentes desta classe são chamadas de 'daemons'.
Classes
TCustomDaemon
Este é um descendente do TDataModule que habilita todo o trabalho. Este pode ter diversas classes TCustomDaemons e/ou instâncias executando ao mesmo tempo e no mesmo processo(multi threaded).
TCustomDaemonApplication
Este é um descendente da TCustomApplication que cria os TCustomDaemons. Este não precisa de mudanças. Ele executa sob Windows até receber a chamada de Stop(parada) ou sob linux até receber o sinal TERM.
TDaemonMapper
Este componente é encarregado do registro do serviço. Cada instância precisa de uma entrada na propriedade DaemonsDefs.
Daemon - Passo a Passo
- Quando o daemon é inicializado os comandos da linha de comando são traduzidos. Os seguintes são pré-definidos:
- -i --install: registra o daemon. Tem nenhum efeito sob unix.
- -u --uninstall: remove o daemon. Tem nenhum efeito sob unix.
- -r --run: inicia o daemon. Windows faz isto normalmente ele mesmo.
- Criar o TDaemonMapper
- Criar um TCustomDaemon para cada entrada do DaemonDefs.
- instalar, remover ou executar cada instância.
- se executar: inicializar cada instância na sua própria thread e então aguardar pelo sinal de STOP/TERM.