UTILIZANDO daemontools djb – linux
daemontools é uma coleção de ferramentas para gerenciar serviços UNIX.
Supervisor monitora um serviço. Ele inicia o serviço e reinicia o serviço se ele terminar. Configurar um novo serviço é fácil: tudo que o supervisor precisa são um diretório com um script chamado run que executa o serviço.
NA PRÁTICA
Então no geral, a pasta onde ficam esses serviços é: /service/
Dentro delas temos as pastas dos serviços como por exemplo: /service/script-time
Se você já tem o daemontools instalado corretamente, crie a pasta acima.
[simterm] $ mkdir /service/script-time [/simterm]
Como tinha dito, dentro da pasta do seu serviço, aqui no exemplo chamado script-time, haverá um arquivo chamado run. Crie o mesmo com o conteúdo abaixo:
#!/bin/bash
exec ./rode
Este arquivo quando lido pelo supervisor irá executar a linha exec executando o arquivo rode. Este que está localizando (neste caso) na mesma pasta do serviço, ou seja, o caminho completo seria /service/script-time/rode
Vamos criar agora esse script chamado rode, crie o arquivo e insira o conteudo abaixo nele:
#!/bin/bash
while :
do
echo "Gerando time: `date`" >> LOG
sleep 10
done
Basicamente o script irá gerar e alimentar um arquivo chamado LOG com linhas mostrando o time na mesma pasta do serviço, isso a cada 10segundos gerará uma nova linha.
Vamos ajustar as permissões dos arquivos:
[simterm] $ chmod 755 /service/script-time/run
$ chmod 755 /service/script-time/rode [/simterm]
Feito isso, precisando ver se o svscan está rodando, pois se não ele não identificará os serviços em /service para inicializar:
[simterm] $ ps aux |grep svscan [/simterm]
Se não retornar nada execute o comando abaixo(caso esteja usando linux com que tenha sh) para iniciar o svscanboot:
[simterm] $ sh -cf ‘/command/svscanboot &’ [/simterm]
COMANDO SVSTAT
O comando svstat para verificar status. Basta passar o comando seguido da pasta do serviço:
[simterm] $ svstat /service/script-time [/simterm]
/service/script-time: up (pid 92) 257 seconds
COMANDO SVC
Comando svc para controlar serviço, opções mais usadas:
- -u: Se o serviço não estiver em execução, inicie-o. Se o serviço parar, reinicie-o.
- -d: Envia sinal TERM para parar o serviço, depois que ele parar, não o reinicie.
- -o: Se o serviço não estiver em execução, inicie-o. Não reinicie se ele parar.
- -p: Pausa. Envie ao serviço um sinal STOP.
- -c: continuar. Envie ao serviço um sinal CONT.
- -t: Encerrar. O serviço será encerrado e logo em seguida iniciado.
Exemplo de uso:
[simterm] $ svc -t /service/script-time [/simterm]
FONTES
http://thedjbway.b0llix.net/daemontools/blabbyd.html
Publicar comentário