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
| Old | New | Line | |
|---|---|---|---|
| 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).* |
