Sign in Join
Wiki copytemporary

Daemons and Services/pt: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Daemons and Services/pt

OldNewLine
1+# O que são daemons e serviços ?
2+
3+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.
4+
5+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'.
6+
7+# Classes
8+
9+## TCustomDaemon
10+
11+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).
12+
13+## TCustomDaemonApplication
14+
15+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.
16+
17+## TDaemonMapper
18+
19+Este componente é encarregado do registro do serviço. Cada instância precisa de uma entrada na propriedade **DaemonsDefs**.
20+
21+# Daemon - Passo a Passo
22+
23+- Quando o daemon é inicializado os comandos da linha de comando são traduzidos. Os seguintes são pré-definidos:
24+ - -i --install: registra o daemon. Não tem nenhum efeito sob unix.
25+ - -u --uninstall: remove o daemon. Não tem nenhum efeito sob unix.
26+ - -r --run: inicia o daemon. O Windows normalmente isto, ele mesmo.
27+- Criar o TDaemonMapper
28+- Criar um TCustomDaemon para cada entrada do *DaemonDefs*.
29+- instalar, remover ou executar cada instância.
30+- se executar: inicializar cada instância na sua própria thread e então aguardar pelo sinal de STOP/TERM.
31+
32+# Métodos Daemon
33+
34+## Start
35+
36+Chamado quando daemon deve iniciar. Este método deve retornar imediatamente com *True*.
37+
38+## Stop
39+
40+Chamado quando daemon deve parar. Este método deve retornar imediatamente com *True*.
41+
42+## Shutdown
43+
44+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.
45+
46+## Pause
47+
48+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.
49+
50+## Continue
51+
52+Chamado quando o daemon deve ser continuar depois da pausa. Este método deve retornar imediatamente com *True*. No Linux este não é desencadeado.
53+
54+## Install
55+
56+Chamado quando o daemon é registrado como um serviço do Windows. Este método deve retornar ''True' caso haja sucesso.
57+
58+## Uninstall
59+
60+Chamado quando o daemon é "des-registrado" como um serviço do Windows. Este método deve retornar ''True' caso hoje sucesso.
61+
62+## AfterUnInstall
63+
64+Chamado depois que o daemon foi "des-registrado" como um serviço do Windows. Este método deve retornar ''True' quando houver sucesso.
65+
66+## HandleCustomCode
67+
68+Chamado quando um sinal especial foi enviado para o daemon. Este método deve retornar *True* caso haja sucesso.
69+
70+# Exemplo
71+
72+Há um exemplo simples no diretório examples/cleandir/. Leia o arquivo README.TXT.
73+
74+---
75+*From the Free Pascal wiki, page "Daemons and Services/pt", as it stood on 2022-01-09 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history