|
|||||||||||||||||||||||||||
On Fri, Oct 25, 2002 at 10:52:38AM +0200, sslug@sslug wrote:
> Hej David,
>
> Det har jeg også prøvet (også ved at hoppe ud af løkken med en "last"), men
> det virker ikke i mit tilfælde. close() venter på at mit prog skal blive
> færdigt. I dit tilfælde vil jeg mene at close() først lukker når tail er
> færdig, for den bliver vel færdig på et tidspunkt eller (jeg kender ikke tail
> så godt)? Mit prog (dsmadmc) bliver aldrig færdig da den hele tiden venter på
> nye beskeder fra TSM serveren.
En 'tail -f' bliver aldrig færdig, hen hvis dit problem er at det program du
kører ikke lukkes ned, når du lukker din ende af pipen, så bliver du jo nødt
til at selv få det lukket ned.
> > open TEST, "tail -f /var/log/messages|" or die "Could not start it: $!\n";
> > my $i=0;
> > while (<TEST>)
> > {
> > print;
> > last if ($i++==15);
> > }
> > close TEST;
Det kunne f.eks. gøres ved et par ændringer i ovenstående kode.
my $pid = open TEST,.....
....
close TEST;
kill 3, $pid;
Hvor du nu sender en sigquit til programmet, hvilket svarer til hvad du
normalt ville sende fraa en konsol vha. ctrl-c.
MVH David
|
||||||||||||||
|
||||||||||||||