[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Conjugando wait e trap
From: |
Rodolfo Villanova_HP |
Subject: |
Conjugando wait e trap |
Date: |
Thu, 20 Dec 2001 16:58:03 -0200 |
Scriptografistas,
Estou refazendo uns shell-scripts em plataforma HP-Ux, mas creio que valha
para quaisquer ambientes Unix-likes.
Meu objetivo é o de paralelizar a execução de scripts.
Para isso lanço mão de disparo de processos em background (&) e wait.
Ex: ...
faztudo.sh & wait $!
...
onde
a) faztudo.sh => é o nome do meu script;
b) & => é o comando para jogar a execução para background;
c) wait => manda esperar o fim do processo;
d) $! => PID do processo diparado por faztudo.sh;
e) ... => outras linhas de um script, que agora não interessam(!)
Bem..., então, quando o script faztudo.sh encerrar em seu conteúdo a
execução de uma série de scripts disparados em background, a próxima linha
de comando (...) passa a ser executada.
Bom, agora vem o bicho: quero entender melhor o funcionamento do comando
trap (o man do HP-Ux não é lá muito esclarecedor...), para entender até que
ponto o "trap" pode ajudar a executar um evento qualquer de forma
assíncrona, aproveitando seu potencial para esperar eventos e disparar
processos em paralelo que sejam dependentes uns dos outros, ou seja, um
processo somente inicia a sua execução quando o seu dependente houver
sinalizado algo.
Desculpe a "viagem", mas ainda quero aprofundar meus conhecimentos e
aproveitar todo o potencial dos comandos da linguagem shell.
Espero que essa investigação seja proveitosa para todos.
Grato antecipadamente pelas contribuições,
Rodolfo Villanova
----------------------------------------------------------------------
"If you have an apple and I have an apple and we exchange apples then
you and I will still each have one apple. But if you have an idea and
I have one idea and we exchange these ideas, then each of us will have
two ideas."
George Bernard Shaw
----------------------------------------------------------------------
- Conjugando wait e trap,
Rodolfo Villanova_HP <=