Difference between revisions of "Daemons and Services/pt"

From Free Pascal wiki
Jump to navigationJump to search
(New page: =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...)
 
(→‎Daemon - Passo a Passo: remove blank lines)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
=O que são daemons e services ?=
+
{{Daemons and Services}}
 +
=O que são daemons e serviços ?=
  
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.
+
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 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'.
+
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=
 
=Classes=
Line 9: Line 10:
 
==TCustomDaemon==
 
==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).
+
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==
 
==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.
+
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==
 
==TDaemonMapper==
Line 22: Line 23:
  
 
*Quando o daemon é inicializado os comandos da linha de comando são traduzidos. Os seguintes são pré-definidos:
 
*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.
  
**-i --install: registra o daemon. Tem nenhum efeito sob unix.
+
==AfterUnInstall==
**-u --uninstall: remove o daemon. Tem nenhum efeito sob unix.
 
**-r --run: inicia o daemon. Windows faz isto normalmente ele mesmo.
 
  
*Criar o TDaemonMapper
+
Chamado depois que o daemon foi "des-registrado" como um serviço do Windows. Este método deve retornar ''True' quando houver sucesso.
 +
 
 +
==HandleCustomCode==
  
*Criar um TCustomDaemon para cada entrada do ''DaemonDefs''.
+
Chamado quando um sinal especial foi enviado para o daemon. Este método deve retornar ''True'' caso haja sucesso.
  
*instalar, remover ou executar cada instância.
+
=Exemplo=
  
*se executar: inicializar cada instância na sua própria thread e então aguardar pelo sinal de STOP/TERM.
+
Há um exemplo simples no diretório examples/cleandir/. Leia o arquivo README.TXT.

Latest revision as of 02:11, 9 January 2022

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.