{"id":1674,"date":"2021-05-18T00:59:23","date_gmt":"2021-05-18T03:59:23","guid":{"rendered":"https:\/\/www.bfnetworks.com.br\/?p=1674"},"modified":"2023-01-15T19:20:32","modified_gmt":"2023-01-15T22:20:32","slug":"utilizando-daemontools-djb-linux","status":"publish","type":"post","link":"https:\/\/bfnetworks.com.br\/utilizando-daemontools-djb-linux\/","title":{"rendered":"UTILIZANDO daemontools djb – linux"},"content":{"rendered":"\n
daemontools<\/em> \u00e9 uma cole\u00e7\u00e3o de ferramentas para gerenciar servi\u00e7os UNIX. <\/p>\n\n\n Supervisor<\/em> monitora um servi\u00e7o. Ele inicia o servi\u00e7o e reinicia o servi\u00e7o se ele terminar. Configurar um novo servi\u00e7o \u00e9 f\u00e1cil: tudo que o supervisor precisa s\u00e3o um diret\u00f3rio com um script chamado run<\/em> que executa o servi\u00e7o.<\/p>\n\n\n Ent\u00e3o no geral, a pasta onde ficam esses servi\u00e7os \u00e9: \/service\/<\/strong><\/p>\n\n\n Dentro delas temos as pastas dos servi\u00e7os como por exemplo: \/service\/script-time<\/strong><\/p>\n\n\n Se voc\u00ea j\u00e1 tem o daemontools instalado corretamente, crie a pasta acima.<\/p>\n\n\n Como tinha dito, dentro da pasta do seu servi\u00e7o, aqui no exemplo chamado script-time, haver\u00e1 um arquivo chamado run<\/em><\/strong>. Crie o mesmo com o conte\u00fado abaixo: <\/p>\n\n\n Este arquivo quando lido pelo supervisor ir\u00e1 executar a linha exec<\/strong> executando o arquivo rode<\/strong>. Este que est\u00e1 localizando (neste caso) na mesma pasta do servi\u00e7o, ou seja, o caminho completo seria \/service\/script-time\/rode<\/strong><\/p>\n\n\n Vamos criar agora esse script chamado rode, crie o arquivo e insira o conteudo abaixo nele:<\/p>\n\n\n Basicamente o script ir\u00e1 gerar e alimentar um arquivo chamado LOG com linhas mostrando o time na mesma pasta do servi\u00e7o, isso a cada 10segundos gerar\u00e1 uma nova linha.<\/p>\n\n\n Vamos ajustar as permiss\u00f5es dos arquivos:<\/p>\n\n\n Feito isso, precisando ver se o svscan<\/strong> est\u00e1 rodando, pois se n\u00e3o ele n\u00e3o identificar\u00e1 os servi\u00e7os em \/service<\/strong> para inicializar:<\/p>\n\n\n Se n\u00e3o retornar nada execute o comando abaixo(caso esteja usando linux com que tenha sh) para iniciar o svscanboot:<\/p>\n\n\n O comando svstat para verificar status. Basta passar o comando seguido da pasta do servi\u00e7o:<\/p>\n\n\n Comando svc<\/strong> para controlar servi\u00e7o, op\u00e7\u00f5es mais usadas:<\/p>\n\n\n Exemplo de uso:<\/p>\n\n\nNA PR\u00c1TICA<\/h3>\n\n\n
#!\/bin\/bash\nexec .\/rode<\/code><\/pre>\n\n\n
#!\/bin\/bash<\/code>\nwhile :\ndo\n echo \"Gerando time: `date`\" >> LOG\n sleep 10\ndone<\/pre>\n\n\n
COMANDO SVSTAT<\/h3>\n\n\n
\/service\/script-time: up (pid 92) 257 seconds<\/pre>\n\n\n
COMANDO SVC<\/h3>\n\n\n