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
