Wednesday, July 16, 2008

Web reaper

These days I had working on web interfaces for some Perl scripts, the server is an 8-cores Linux box with CentOS with Apache as web server, but some tests didn't work well and some probably fall into an infinite loops. The problem was I can not kill these process, because I must not know the admin password and I can not have access for the web server, the scripts are created in my home and when activate the process is submit by the apache user. So the solution was a script which ask the PID and send a termination signal. Here is the code, maybe someone can use it:

#!/tools64/bin/perl -w
use strict;

=head1 NAME


Web service to stop some uncontrolled process created by the Perl::CGI.
Simply presents a web form to indicate the PID and call a system termination.


use CGI::Pretty qw/:standard/;

print header;
print start_html(-title=>'');
print start_form;
print p('Kill this process: ', textfield(-name=>'proc'));
print submit(), reset();
print end_form;

if( param()) {
my $proc = param('proc');
$proc =~ s/\D//g;
my $res = `kill -15 $proc`;
print p("Killed $proc: $res");
print end_html;

=head1 AUTHOR

Juan Caballero (linxe _at_

=head1 LICENSE

Perl Artistic License (


Thanks to G for the idea.

No comments:

Post a Comment