Daemons and Services/pt
│
English (en) │
español (es) │
français (fr) │
polski (pl) │
português (pt) │
русский (ru) │
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'.
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 no Windows até receber a chamada de Stop (parada) ou no 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. 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.
Métodos Daemon
Start
Chamado quando daemon deve iniciar. Este método deve retornar imediatamente com True.
Stop
Chamado quando daemon deve parar. Este método deve retornar imediatamente com True.
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.
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.
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.
Install
Chamado quando o daemon é registrado como um serviço do Windows. Este método deve retornar True' caso haja sucesso.
Uninstall
Chamado quando o daemon é "des-registrado" como um serviço do Windows. Este método deve retornar True' caso hoje sucesso.
AfterUnInstall
Chamado depois que o daemon foi "des-registrado" como um serviço do Windows. Este método deve retornar True' quando houver sucesso.
HandleCustomCode
Chamado quando um sinal especial foi enviado para o daemon. Este método deve retornar True caso haja sucesso.
Exemplo
Há um exemplo simples no diretório examples/cleandir/. Leia o arquivo README.TXT.