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: Ronaldo Russel - DHL IS - BR, SAO
Subject: RE: [shell-script] Re: Limitar numero de processos em paralelo
Date: Fri, 22 Aug 2003 16:56:03 -0300

E se na forma anterior o processo fosse recursivo, chamando a si
mesmo, mas em background e saindo em seguida? Tipo

 ... comandos           # Comandos dentro do shell.
 ... comandos           # Comandos dentro do shell.
 ./processo.sh &                # Processo chama a si mesmo em background.
 exit                           # Encerra o processo.

Não seria viável?

abraços a todos ...

-----Original Message-----
From: Leonardo Ayres [mailto:address@hidden]
Sent: sexta-feira, 22 de agosto de 2003 16:53
To: address@hidden
Subject: [shell-script] Re: Limitar numero de processos em paralelo


Oi Gustavo,

Esta solução resolve um problema da solução apontada anteriormente. A
solução dada pelo César até apontou um caminho que eu não estava
conseguindo ver de iniciar novamente o processo ao final do mesmo,
mas acontecia de o processo ir se propagando indefinidamente.
Desta forma agora, o processo se mantém estável em número de cópias
sendo executadas.

Eu ainda teria que passar um nome de arquivo diferente para cada
processo, mas isto, basta eu passar o diretório como parâmetro e
varrer o diretório por arquivos não processados.

Leonardo

--- Em address@hidden, Gustavo Jantsch
<jantsch@v...> escreveu
>
> 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 <cesarakg@b...> 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
> >
> >
> >



---------------------------------------------------------------------
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]