On 10/20/06, André Luiz Alves da Silva Prates <[EMAIL PROTECTED]> wrote:
>
> Antes de starta-lo, você deve verificar se o seu processo já está executando.
>
> FOUND=`ps -ef | grep 'meu_processo.sh' | grep -v egrep | grep -v $$ | wc -l`

Testar se seu script está rodando antes de inicia-lo é realmente
importante, mas um "grep" na saída do "ps" pode levar à erros. Eu
recomendaria o uso de arquivos de LOCK(trava), mais ou menos assim:

   [ -f $LOCK_FILE ] || exit 1
   touch $LOCK_FILE
   # seu script aqui
   rm -fr $LOCK_FILE || exit 1
   exit 0

Quando seu script for executado com sucesso, o "$?" após ele será "0",
se ele ainda estiver sendo executado ou não conseguir apagar o
"$LOCK_FILE" o "$?" será "1".

Para maior segurança ainda, você pode jogar trocar:
   touch $LOCK_FILE
Por:
   echo $$ > $LOCK_FILE
Para guardar o PID processo do atual(seu script) no $LOCK_FILE, mas
antes você deve testar se ele já não está rodando:
   [ -d /proc/$(cat $LOCK_FILE) ] || exit 1
O que testa se este processo ainda está rodando.

Talvez estes trechos rodem apenas sobre Linux e no BASH.

[]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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a