Automação de Script

1. Automação de Script

Jean Santos
jeansantos

(usa CentOS)

Enviado em 15/07/2012 - 19:25h

Salve, salve a todos!
Pois bem, esse é meu segundo artigo aqui no Viva o Linux, estou atualizando um painel que fiz recentemente para aplicações específicas, eu estava lendo um pouco sobre esse assunto... Eu gostaria de colocar uma opção na qual ativada pelo usuário, terá a obrigação de inicializar um ou mais aplicativos... O comando seria 'mais ou menos' "autorun ligar", mas essa função deve funcionar até em um desligamento inesperado.. Alguma ideia de como eu poderia fazer essa função?

Agradeço desde já :)


  


2. Re: Automação de Script

Josue de Jesus Santos
JJSantos

(usa Gentoo)

Enviado em 15/07/2012 - 20:38h

Não entendi?


3. Re: Automação de Script

Jean Santos
jeansantos

(usa CentOS)

Enviado em 15/07/2012 - 21:51h

Josue A. Santos escreveu:

Não entendi?


Hm, nesse caso... Deixa eu ver se consigo melhorar(rsrs).. Estou desejando colocar uma opção no meu script shell que deixe rodando um script automaticamente se não for detectado tal processo, essa função terá a obrigação de verificar se há o processo X rodando, se nesse caso, não estiver... O próprio 'autorun' iria iniciá-lo.. Da forma manual, assim que o usuário digitar script ligar, ele executa tal operação abaixo:

exec ./login-server_sql &
exec ./char-server_sql &
exec ./map-server_sql &
Eu gostaria que se ativado, essas opções estivesse em constante execução.

E agora?


4. Re: Automação de Script

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 16/07/2012 - 20:16h

Pelo que entendi vc quer que alguns daemons fiquem em background, certo?
Por exemplo, vc quer monitorar se uma determinada instância do seu banco de dados está ativa, caso não esteja você a iniciaŕa. É mais ou menos isso?


5. Re: Automação de Script

Jean Santos
jeansantos

(usa CentOS)

Enviado em 16/07/2012 - 20:44h

Foi quase, não seria um bancos de dados, mas sim uma aplicação rodando, no caso as três citadas anteriormente.


6. Re: Automação de Script

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 16/07/2012 - 21:03h

Há varias formas para resolver isso.
Entre elas, você pode verificar se o PID do processo está ativo, por exemplo:

PID=$(ps -ef | grep seu_processo | grep -v grep)

Em seguida vc faz uma condição para checar se o PID existe, caso a variavel PID esteja nula, entao processo está parado e vc o inicia. Em seguida pode checar se o mesmo realmente foi iniciado corretamente.

Isso vc pode inserir em um loop infinito que faz este check uma vez a cada 5 segundos.
Se quiser fazer algo mais complexo, pode enviar as informações em um log do qual mantem a data/horario em que o processo parou, se subiu corretamente, quanto tempo ele caiu durante tantos dias, etc.




7. Re: Automação de Script

Juan Fontes
JFontes

(usa Ubuntu)

Enviado em 19/07/2012 - 12:08h

Isso é um servidor de Ragnarok né?


8. Re: Automação de Script

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/07/2012 - 12:27h

Costuma-se encontrar o número de um daemon/serviço em funcionamento em /var/run.
É um arquivo de nome idêntico ao serviço com um único número escrito dentro.
O número do ID.

Daí é verificar se o id/nome do daemon está lá dentro, sofreu modificação, última data, última hora, valor do número, comparar conforme a sugestão dada.

Se você quiser acionar um verificador desses no carregamento do sistema, pode colocar um script para ser carregado no /etc/init.d/, igualzinho a como os daemons ou serviços inicializam-se.

E criar um número para ele ser ativado/desativado durante o boot/reboot/shutdown.

Colocar links começando por S em algum dos diretórios de /etc/rc1.d/ a /etc/rc5.d/ e com K em /etc/rc0.d/ e /etc/rc6.d/

Eu não me lembro agora da exata organização de diretórios de um Red Hat, mas a organização é semelhante.

Por exemplo, um programa chamado "verifica".

O script ficará em /etc/init.d/verifica

Se ele deve ser inicializado com runlevel 3, então o link deverá estar no diretório de tudo que é inicializado com runlevel 3.

/etc/rc3.d/S15verifica

S15 (algo como start 15) é para ele inicializar depois do que estiver marcado de S00 a S14 e antes de que estiver como S16 a S99

K15 (algo como kill 15) é a mesma coisa, mas faz o inverso. Pára ao invés de inicializar.

Se ocorrer de necessitar mudança de runlevel com o sistema em execução, o runlevel da mudança poderá parar/inicializar ele. Por isso existem links iniciados com K em alguns runlevels, sendo que em outros há o mesmo com S.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts