Jason0x21 has asked for the wisdom of the Perl Monks concerning the following question:
I'm working on a server daemon program that
will provide a running "tail" of a log file
to clients connected with "telnet". To start
with, I used the forking server shown on
pages 350-351 in Chapter 6 of the
- Programming Perl
spawn sub { my($nodie) = 1; my(@tail) = (); my($err) = 0; print "Hello there, $name, it's now ", scalar localtime, $EOL; open(REQLOG,$ReqLog) || confess "can't open $ReqLog: $!"; while(<REQLOG>) { push(@tail,$_); if($#tail>10) { shift(@tail); } } foreach(@tail) { print $_,"\r"; } while($nodie) { while(<REQLOG>) { if(! print $_,"\r") { confess "can't print to socket: $!"; $nodie = 0; last; } } } sleep(5); seek(REQLOG,0,1); } }; }The "tailing" procedure works just fine, the problem happens when I disconnect from the client side. The forked server sending data to the client doesn't exit. I don't get any messages. Is there a signal I'm supposed to be looking for here? Thanks in advance.
Back to
Seekers of Perl Wisdom