Interromper serviço

Delphi

09/06/2009

Olá.

Criei um serviço para rodar em Windows que fica verificando de tempos em tempos determinada condição. Quando essa condição for falsa preciso que o serviço seja parado. Porém, quando falamos em um programa que roda como serviço do Windows, o processo de parada é diferente que num programa application.

DÚVIDA: Como faço para parar o serviço quando este serviço entrar em determinada condição? Como faço para que o próprio serviço ´diga´ ao Windows para interromper sua execução (do serviço)?

vlw


Rtava

Rtava

Curtidas 0

Respostas

Pestana_

Pestana_

09/06/2009

chame o método servico.DoStop é isso que você queria saber?


GOSTEI 0
Rtava

Rtava

09/06/2009

Pestana,
Não sei o é isso que você comentou.
O caso é que criei um serviço para o Windows e preciso que serviço seja interrompido caso ocorra uma determinada situação que vou impor. Não sei como fazer isso usando o próprio serviço, ou seja, fazendo com que ele mesmo se interrompa (na lista de serviços do Windows o serviço deixará de aparecer como ´Iniciado´).

vlw


GOSTEI 0
.lg.

.lg.

09/06/2009

so 1 dúvida, acho que em questão de lógica...

Como, ou, o que vai retornar o serviço se o ´próprio´ serviço se interromper? Ou vai ter um serviço de auxílio para reiniciar o seu serviço que se interrompeu!?

Fiquei na dúvida.
Tem como você me explicar como vc planejou essa lógica?

.lg.


GOSTEI 0
Rtava

Rtava

09/06/2009

Lg, se você tem um programa do tipo Application, como você faz para interrompê-lo? Você pode por exemplo, colocar um botão na tela e no código do botão escrever ´close;´, correto? Ou seja, me corrija se eu estiver errado, mas este ´close´ não é uma ação do próprio programa que faz com que ele mesmo se feche? Só que num programa do tipo ´serviço´, o ´close´ não é aplicável, pois programas que rodam como serviços não fecham com ´close´.

Então minha dúvida é: Como faço para fechar um serviço?


GOSTEI 0
Pestana_

Pestana_

09/06/2009

foi você que criou este serviço? caso sim, então chame o método [b:a1eab086bb]DoStop[/b:a1eab086bb] (servico.DoStop).


GOSTEI 0
.lg.

.lg.

09/06/2009

Te respondendo... Para finalizar a aplicação... eu uso o [b:34ed9acd80]Application.Terminate[/b:34ed9acd80].

Para o serviço... o pestana já respondeu:
foi você que criou este serviço? caso sim, então chame o método [b:34ed9acd80]DoStop[/b:34ed9acd80] (servico.DoStop).

Acho que imaginei algo meio doido aqui... Penso que por exemplo... o sqlServer... a aplicação está sempre rodando mas o serviço depende. Então pensei besteira em dizer que se finalizar o serviço eu achei que finalizaria a aplicação tambem. :roll:
lol.

Abraços,
.lg.


GOSTEI 0
POSTAR