Daemons and Services/pt
From Lazarus-ccr
English (en) Português (pt)
Contents |
[edit] O que são daemons e serviços ?
Daemons Unix e serviços do Windows são programas rodando sem interação do usuário. Por exempo servidores www ou ftp são chamados de daemons no linux e serviços no windows. Porque eles não interagem com o usuário diretamente, eles fecham seus descritores stdin, stdout, stderr quando iniciam.
Com Free Pascal, Lazarus é possível escrever estes daemons/services independente da plataforma através do pacote lazdaemon. Para evitar conflitos de nome com os componentes Delphi os componentes desta classe são chamadas de 'daemons'.
[edit] Classes
[edit] 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).
[edit] TCustomDaemonApplication
Este é um descendente da TCustomApplication que cria os TCustomDaemons. Este não precisa de mudanças. Ele executa no Windows até receber a chamada de Stop (parada) ou no linux até receber o sinal TERM.
[edit] TDaemonMapper
Este componente é encarregado do registro do serviço. Cada instância precisa de uma entrada na propriedade DaemonsDefs.
[edit] 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. Não tem nenhum efeito sob unix.
- -u --uninstall: remove o daemon. Não tem nenhum efeito sob unix.
- -r --run: inicia o daemon. O Windows normalmente isto, 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.
[edit] Métodos Daemon
[edit] Start
Chamado quando daemon deve iniciar. Este método deve retornar imediatamente com True.
[edit] Stop
Chamado quando daemon deve parar. Este método deve retornar imediatamente com True.
[edit] Shutdown
Chamado quando o daemon deve ser killed (morto). este método deve parar o daemon imediatamente e retornar com True. Este não é desencadeado no Linux. Linux simplesmente mata o daemon.
[edit] Pause
Chamado quando o daemon deve pausar. Este método deve retornar imediatamente com True. No Linux este não é desencadeado porque o kernek pára completamente o daemon no STOP e continua ele no CONT.
[edit] Continue
Chamado quando o daemon deve ser continuar depois da pausa. Este método deve retornar imediatamente com True. No Linux este não é desencadeado.
[edit] Install
Chamado quando o daemon é registrado como um serviço do Windows. Este método deve retornar True' caso haja sucesso.
[edit] Uninstall
Chamado quando o daemon é "des-registrado" como um serviço do Windows. Este método deve retornar True' caso hoje sucesso.
[edit] AfterUnInstall
Chamado depois que o daemon foi "des-registrado" como um serviço do Windows. Este método deve retornar True' quando houver sucesso.
[edit] HandleCustomCode
Chamado quando um sinal especial foi enviado para o daemon. Este método deve retornar True caso haja sucesso.
[edit] Exemplo
Há um exemplo simples no diretório examples/cleandir/. Leia o arquivo README.TXT.
