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

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

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


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

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











reply via email to

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