|
|||||||||||||||||||||||||||
Hej David,
Nej, mit problem er ikke at programmet ikke lukkes ned, det er jeg som sådan ligeglad med, men jeg kommer aldrig videre fra min close(). Kode der kommer efter min close() bliver simpelthen ikke eksekveret.
Men tak for forsøget ;-)
Mvh
Christian
>
> Fra: sslug@sslug
> Dato: 2002/10/25 Fri AM 11:08:50 CEST
> Til: sslug@sslug
> Emne: Re: Sv: Re: [PERL] Kan man gennemtvinge en close()?
>
> 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
>
-------------------------------------------------
WebMail fra Tele2 http://www.tele2.dk
-------------------------------------------------
|
||||||||||||||
|
||||||||||||||