|
|||||||||||||||||||||||||||
On Fri, Oct 25, 2002 at 10:22:58AM +0200, sslug@sslug wrote:
> Hej liste,
>
> Jeg har åbnet et program for at grabbe linier fra dets output, men
> programmet bliver aldrig færdigt (er et program der monitorerer en TSM
> server) og man kan ikke sende komandoer til det. Derfor kan jeg ikke
> lukke min "pipe" igen, da close() venter på at programmet skal lukke.
>
> Er der en måde jeg kan tvinge close() til at lukke min pipe selv om
> programmet ikke er lukket?
Jeg forstår ikke helt hvad problemet består i - vil programmet du starter
ikke afslutte, eller hvad sker der?
> Sample kode her:
> ---
> $username = "********";
> $password = "********";
> $execute = "dmsamdc";
> open(CONSOLE, "$execute -id=$username -pass=$password -console |");
> while (<CONSOLE>)
> {
> .
> ...Mere kode her...
> .
> if (/^(ANR0985I Process $process_id)/)
> {
> close(CONSOLE);
> }
> }
Jeg lavede lige et lille test program her, som umiddelbart fungerer fint:
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;
Den eneste ændring jeg har lavet er at hoppe ud af løkken før jeg kører
lukker for det filehandle.
MVH David
|
||||||||||||||
|
||||||||||||||