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

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

Re: [shell-script] Re: Limitar numero de processos em paralelo


From: Gustavo Jantsch
Subject: Re: [shell-script] Re: Limitar numero de processos em paralelo
Date: Fri, 22 Aug 2003 16:24:42 -0300

Olha só, esse problema é bem legal.
Desenvolvi o script abaixo que, de forma simples,
resolve o problema:

#!/bin/bash
entrada="$1"
processos=$(ps ax -o command | \
        grep "^/bin/bash ./processa.sh" | \
        wc -l ) 
echo "Processos rodando: $processos" 
while [ $processos -ge 3 ]; do
        sleep 2s
        processos=$(ps ax -o command | \
                grep "^/bin/bash ./processa.sh" | \
                wc -l ) 
     echo "Processos rodando: $processos" 
done
echo "Executando: $entrada"
./processa.sh $entrada &

ele tenta manter no máximo 3 cópias do shell
"processa.sh" executando ao mesmo tempo. E
funciona legal... o único porém fica quanto ao
"sleep 2s" que deveria ser randômico e não fixo.
Pois se eu iniciar 5 cópias do shell acima com
intervalo de 1s entre cada chamada... o shell faz
o que se pede. Mas se eu iniciar 5 cópias do shell
acima, ele vai disparar os 5 "processa.sh" ao
mesmo tempo por que o sistema tem um delay pra
passar a informação para o ps | grep. Ou seja, as
5 cópias pegam um 'ps | grep' com a mesma
informação.

Se pudesse gerar um delay aleatório, funcionaria
legal. Algo tipo "sleep '2*umnumeroqualquer's".

[]s,
Gustavo.

On Fri, 22 Aug 2003 18:05:59 -0000
César A. K. Grossmann <address@hidden> wrote:

> --- Em address@hidden,
> "Leonardo Ayres"<leonardo.ayres@u...> escreveu
> > Achei a solução bem simples e elegante, mas
> > não sei bem se serve no meu caso. Deixe eu
> > detalhá-lo melhor.
> > 
> > Como o processo está um pouco lento, pensei em
> > melhorar a performance colocando uns 3
> > sql-loader carregando arquivos diferentes em
> > paralelo. 
> 
> Bom, antes de tentar uma solução para este novo
> desafio de script, eu preciso te fazer uma
> pergunta: você sabe *por quê* o processo está
> lento? Colocar três consultas em paralelo vai
> realmente agilizar o teu trabalho?
> 
> É preciso ter certeza de ter entendido bem o
> problema, por que senão você vai estar fazendo
> que nem a moça da piada, que estava procurando
> uma chave em baixo de um poste, por que era mais
> iluminado do que onde ela tinha perdido a chave.
> 
> []s
> --
> César A. K. Grossmann
> 
> Um resumo da história de John Lions, um herói do
> mundo Unix
> http://www.LinuxByGrossmann.cjb.net/code_critic.html
> 
> 
> 
> -----------------------------------------------
> ---------------------- 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.listasdiscussao.cjb.net
> -----------------------------------------------
> ----------------------
>  
> 
> Seu uso do Yahoo! Grupos é sujeito às regras
> descritas em: http://br.yahoo.com/info/utos.html
> 
> 
> 




reply via email to

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