#!/usr/local/bin/perl
# kill_proc_list.cgi
# Send a signal to a list of process
require './proc-lib.pl';
&ReadParse();
&switch_acl_uid();
foreach $s ('KILL', 'TERM', 'HUP', 'STOP', 'CONT') {
$in{'signal'} = $s if ($in{$s});
}
&ui_print_unbuffered_header(undef, $text{'kill_title'}, "");
@pidlist = split(/\s+/, $in{pidlist});
@pinfo = &list_processes(@pidlist);
for($i=0; $i<@pidlist; $i++) {
$in{"args$i"} = $pinfo[$i]->{'args'};
print "$text{'pid'} $pidlist[$i] ... \n";
if (&can_edit_process($pinfo[$i]->{'user'})) {
if (&kill_logged($in{signal}, $pidlist[$i])) {
print "SIG$in{signal} $text{'kill_sent'}
\n";
}
else {
print "$!
\n";
}
}
else {
print "$text{'kill_ecannot'}
\n";
}
}
&webmin_log("kill", undef, undef, \%in);
print "
\n"; &ui_print_footer("index_search.cgi?$in{'args'}", $text{'search_return'});