shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Criei um script, mas quando executo nao aparece na li


From: Flavio Junior
Subject: Re: [shell-script] Criei um script, mas quando executo nao aparece na lista de processos
Date: Fri, 17 Nov 2006 11:17:28 -0200

Amigo,

Pelo q eu entendi, o script faz exatamente o que voce mandou ele fazer:

"while true; do" == Eternamente faça...

Ou seja, o script não libera o console em tempo nenhum (e nem o CPU, diga-se
de passagem) e é por isso q voce nao pode inicia-lo com start/stop.

Da forma que voce quer q ele funcione ele ta certo, eu dou uma sugestão para
colocar dentro do laço while true, no minimo um sleep 1 para que o script
libere algum processamento (1 segundo) durante uma verificação e outra,
dessa forma o script deve ta consumindo exaustivamente o seu CPU.

Eu rodo um script desse tipo para o imsniff, segue abaixo a entrada no
crontab e o script (q roda de minuto a minuto):

Crontab -e:
*/1 *  * * * /usr/local/bin/msnlogs > /tmp/msnlogs

root@bishamonten:~# cat /usr/local/bin/msnlogs
#!/bin/bash
/sbin/pidof imsniff
STAT="$?"
if [ "$STAT" != "0" ]; then
        while true; do
                cd /opt/pkgfw/imsniff/linux
                ./imsniff
        done
fi
root@bishamonten:~#


Perceba que eu mantenho o while true; do da mesma forma que voce, com a
diferença que eu deixo o imsniff rodando em foreground, ou seja, soh executa
o while true se o imsniff NAO estiver rodando (cai sozinho as vzs), e quando
entra no while true a primeira vez, só sai quando o imsniff cai por que ele
segura o console na linha "./imsniff"...


Espero ter ajudado, boa sorte.

Flavio do Carmo Junior

On 11/16/06, Fernandes Rocha <address@hidden> wrote:
>
>   Muito boa tarde a todos da lista...
>
> Preciso de uma ajuda de voces...
>
> Bom, criei um script para startar automaticamente um servico quando o
> mesmo cai, e esta' funcionando direitinho, porem,
> apos executa-lo, se eu quiser cancela-lo, so' consigo interrompe-lo com o
> Ctrl C...
>
> A partir do momento em que o script esta' em funcionamento, eu executo o
> comando ps -ef |less para ver se o encontro,
> mas nao consigo encontra-lo de jeito nenhum...
>
> Gostaria de receber sugestoes se possivel, para resolver o problema do
> processo que nao aparece, e tambem para tentar
> ajustar o script /root/mp8startup para que eu possa derruba-lo com o
> comando /etc/init.d/mp8startup stop, ou inicia-lo
> com o comando /etc/init.d/mp8startup start...
>
> O nome do arquivo e' /root/mp8startup, e o seu conteudo esta' listado
> abaixo.
>
> #SHELL=/bin/bash
> SRV1="/microsiga/protheus8/bin/server/mp8srvlinux"
> SRV2="/microsiga/protheus8/bin/server2/mp8srvlinux"
> while true ; do
> P=$(ps afx|grep $SRV1|cut -d: -f2|cut -d" " -f 2);
> if [ ! $P ]; then
> /etc/init.d/mp8srvlinux1 start;
> dia=$(date +%d/%m/%Y)
> hora=$(date +%Hh-%Mmin-%Ss)
> echo Protheus8 Server 1 Down em $dia as $hora - Iniciado Automaticamente
> !!! >>
> /microsiga/log_queda_srv01.txt;
> fi
> P=$(ps afx|grep $SRV2|cut -d: -f2|cut -d" " -f 2);
> if [ ! $P ]; then
> /etc/init.d/mp8srvlinux2 start;
> dia=$(date +%d/%m/%Y)
> hora=$(date +%Hh-%Mmin-%Ss)
> echo Protheus8 Server 2 Down em $dia as $hora - Iniciado Automaticamente
> !!! >>
> /microsiga/log_queda_srv02.txt;
> fi
> done
>
> OBS.: O script acima verifica o tempo todo se os servicos abaixo estao
> ativos, caso o servico caia ela starta imediatamente:
>
> root 24920 1 7 11:00 pts/1 00:17:43
> /microsiga/protheus8/bin/server/mp8srvlinux daemon
> root 25128 1 5 Nov15 pts/1 01:03:00
> /microsiga/protheus8/bin/server2/mp8srvlinux daemon
>
> Conto com a ajuda de todos...
>
> E desde ja' agradeco...
>
> Um forte abraco.
>
> Fernandes
> address@hidden <fernandes%40grupoofs.com.br>
>
> OFS RJ Ltda.
> Drogaria Moderna.
>
> http://www.drogariamoderna.com.br
>
> "Somente depois de esgotados todos os recursos naturais, o homem sabera'
> que o dinheiro nao se come".
>
> * Autor desconhecido.
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]