Thanks again for your help, which makes this site the unique resource it is.
Using exit from within the handler does the job! This seems to be the natural solution I've failed to come up with. So in Webserver.pm:package MyWebServer; use strict; use warnings; use HTTP::Server::Simple::CGI; use base qw(HTTP::Server::Simple::CGI); sub handle_request { exit; } 1;
For the sake of completeness, here's the code where the PID was written in a file (with some diagnostics sent to STDERR). Note that it didn't stop the server:
In test.pl:And in Webserver.pm:use strict; use warnings; use MyWebServer; my $server = MyWebServer->new( 8080 ); my $pid = $server->background(); print STDERR $pid, "\n"; open( my $fh, '>', 'pid.txt' ) || die; print $fh $pid; close $fh;
package MyWebServer; use strict; use warnings; use HTTP::Server::Simple::CGI; use base qw(HTTP::Server::Simple::CGI); sub handle_request { open( my $fh, '<', 'pid.txt' ) || die; my $pid = <$fh>; close $fh; print STDERR $pid, "\n"; kill 9, $pid; } 1;
In reply to Re^8: Stopping an HTTP::Server::Simple server
by textual
in thread Stopping an HTTP::Server::Simple server
by jaldhar
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |