[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Conjugando wait e trap
From: |
Eliphas Levy Theodoro |
Subject: |
Re: [shell-script] Re: Conjugando wait e trap |
Date: |
Fri, 21 Dec 2001 09:44:48 -0200 (BRST) |
Tá, eu também odeio mandar email pela página do egroups. mumble.
--- In shell-script@y..., "Julio Cezar Neves - DISB.O" wrote:
>
> Passado o recreio vamos ao que interessa: o trap serve para monitorarum
> sinal passado pelo comando kill (se vc fizer um ctrl+c p.ex., é o
> mesmo que fazer um kill -2) então, vc teria que bolar uma forma de
> em um programa master, vc passar determinados sinais (pelo comando
> kill) para os programas filhos. Se vc quiser, te mando em PVT a
> seção referente ao cmd trap do meu livro.
>
> Porém, a forma que uso para fazer estes diaparos assíncronos é por
> meio de named pipes (ou FIFO), isto é vc cria um arquivo tipo named
> pipe (com o cmd mkfifo) e teu programa filho inicia com um comando
> read nestearquivo e ficará preso até que receba algo para ler. O
> programa master, no momento adequado, grava algo neste arquivo e
> então o outro se libera do read e começa o processamento. Entendeu?
> Nem eu... :)
Hmm %)
$ mkfifo espere_aqui
$ l espere_aqui
prw-rw-r-- 1 eliphas eliphas 0 Dec 21 09:09 espere_aqui|
$ cat espere_aqui &
[1] 13914
$
$
$ echo lala > espere_aqui
lala
$
[1]+ Done cat espere_aqui
$
WOW. Começo a pensar em alguns usos úteis pra isso :)
> Rodolfo, amigão vc sabe que estou sempre à disposição em pvt. Se
> puder ajudá-lo, não hesite (nem dê exit :º). [ ]s,
Ei, discutam isso por aqui, pppleeease ':)
É interessante saber outras maneiras de lidar com processamento
paralelo! Até hoje eu usava locks, tendo que usar while e sleep ou o
lockfile:
script1:
rmlock(){ rm mylock; }
touch mylock
trap rmlock EXIT HUP ABRT KILL TERM
script2:
while [ -f mylock ]; do sleep 1; done
ou
lockfile mylock
--
Eliphas