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

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

RES: RES: [shell-script] Como saber se meu shell já está executando?


From: Rodolfo Villanova
Subject: RES: RES: [shell-script] Como saber se meu shell já está executando?
Date: Tue, 15 Mar 2005 14:15:22 -0300

Ok, Alain.

Obrigado pelo aprimoramento sugerido.

Esqueci de destacar que a solução que apresentei serve para interpretadores
Korn-Shell (/bin/ksh) e Bourne-Shell (/bin/sh), embora também funcione no
bash. Meu intuito foi o de apresentar uma solução portável.

No caso que apresentaste, me parece que serve somente para interpretador
Bourne-Again Shell (/bin/bash).

Infelizmente não tenho autorização para compilar e instalar o bash nos
servidores com que trabalho.

Reproduzirei novamente o que havia sublinhado na mensagem anterior:

> > Há maneiras diferentes e até mais enxutas de realizar o proposto.

Grato,
--------------------------
Rodolfo D. Gross Villanova

> -----Mensagem original-----
> De: Alain [mailto:address@hidden]
> Enviada em: terça-feira, 15 de março de 2005 12:46
> Para: address@hidden
> Assunto: Re: RES: [shell-script] Como saber se meu shell já está
> executando?
>
> O comando apropriado para testar se um processo está em execução é
> *pgrep* conforme aprendi aqui na lista. Substitue toda aquela sequencia
> de ps|grep|grep|etc. O camndo simplesmente foi feito para isso :)
>
> Alain
>
> Rodolfo Villanova escreveu:
> > Melhorando um pouco o teste no script:
> >
> > #!/bin/ksh
> > DATA=`date +%d/%m/%Y`
> > HORA=`date +%H:%M:%S`
> > if [ `ps -ef | grep -v grep | grep \`basename $0\` | wc -l` -gt
> 1 ]; then
> >     echo "[${DATA} ${HORA}] *** Existe outro processo
> <`basename $0`> sendo
> > executado nesse momento ***"
> >     exit
> > else
> >     echo "[${DATA} ${HORA}] *** Só há uma instância do processo
> <`basename
> > $0`> sendo executado nesse momento ***"
> >     echo
> >     echo "Segue executando as tarefas restantes do script ..."
> >     echo
> > fi
> >
> > Há maneiras diferentes e até mais enxutas de realizar o proposto.
> > Essa é a forma que encontrei para mostrar como atingir o objetivo.
> >
> >
> > 1 abraço,
> > -----------------
> > Rodolfo Villanova
> >
> >
> >
> >>-----Mensagem original-----
> >>De: Rodolfo Villanova
> >>[mailto:address@hidden]
> >>Enviada em: terça-feira, 15 de março de 2005 10:15
> >>Para: address@hidden
> >>Assunto: RES: [shell-script] Como saber se meu shell já está executando?
> >>
> >>People,
> >>
> >>Creio que o que o nosso amigo Barioni deseja é evitar que haja
> mais de uma
> >>instância do mesmo script rodando ao mesmo tempo.
> >>Presumo isso em razão de que a maioria de meus scripts fazem
> esse tipo de
> >>teste.
> >>
> >>Veja se isso serve:
> >>
> >>if [ `ps -ef | grep -v grep | grep "$nome_script"` ]; then
> >>    echo "$0 já está no ar. Tchau..."
> >>    exit
> >>else
> >>    echo "Dispara o bicho"
> >>    . $nome_script
> >>fi
> >>
> >>Abraço,
> >>--------------------------
> >>Rodolfo D. Gross Villanova
> >>
> >>
> >>>-----Mensagem original-----
> >>>De: Andreyev Dias de Melo [mailto:address@hidden]
> >>>Enviada em: segunda-feira, 14 de março de 2005 14:19
> >>>Para: address@hidden
> >>>Assunto: Re: [shell-script] Como saber se meu shell já está executando?
> >>>
> >>>
> >>>
> >>>On Mon, 07 Mar 2005 22:23:23 -0000, rcbarioni
> >>><address@hidden> wrote:
> >>>
> >>>>
> >>>>Em um shell qualquer, como fazer o IF abaixo com segurança?
> >>>>
> >>>>    if [ ... TESTAR SE O SHELL $0 JÁ ESTÁ RODANDO ... ]
> >>>>
> >>>>    then
> >>>>
> >>>>         echo "O shell $0 já está rodando. Caindo fora."
> >>>>
> >>>>    else
> >>>>
> >>>>         echo "ok, vamos executar as instruções."
> >>>>
> >>>>         instruções... instruções...
> >>>>
> >>>>    fi
> >>>
> >>>Em bash você pode pegar o código de status do último comando na
> >>>variável $?:
> >>>
> >>>$ ping -c 1 -t 1 -q localhost > /dev/null
> >>>$ echo $?
> >>>0
> >>>
> >>>Ou seja, se voltou 0 (zero) geralmente não deu nenhum erro. Porém,
> >>>alguns programas não seguem esta regra.
> >>>
> >>>Se o script for seu, é bem interessante colocar um 'controle' de
> >>>erros, onde vc 'cadastra' os erros mais comuns/importantes...
> >>>[]s
> >>>--
> >>>Andreyev
> >>
> >>
> >>
> >>
> >>---------------------------------------------------------------------
> >>Esta lista não admite a abordagem de outras liguagens de
> >>programação, como perl, C etc. Quem insistir em não seguir esta
> >>regra será moderado sem prévio aviso.
> >>---------------------------------------------------------------------
> >>Sair da lista: address@hidden
> >>---------------------------------------------------------------------
> >>Esta lista é moderada de acordo com o previsto em
> >
> > http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de
> programação, como perl, C etc. Quem insistir em não seguir esta
> regra será moderado sem prévio aviso.
> > ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
>


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------

Links do Yahoo! Grupos











reply via email to

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