%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 14.207.165.8 / Your IP : 216.73.216.101 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/share/webmin/fsdump/ |
Upload File : |
#!/usr/bin/perl
# kill.cgi
# Terminate a running backup job
require './fsdump-lib.pl';
&ReadParse();
&error_setup($text{'kill_err'});
&foreign_require("proc", "proc-lib.pl");
@procs = &proc::list_processes();
@running = &running_dumps(\@procs);
# Find the job
($job) = grep { $_->{'id'} eq $in{'id'} &&
$_->{'pid'} == $in{'pid'} } @running;
$job || &error($text{'kill_egone'});
&can_edit_dir($job) || &error($text{'kill_ecannot'});
# Find all sub-processes
@killprocs = ( $job->{'pid'}, &find_subprocesses($job->{'pid'}) );
&kill_logged('TERM', @killprocs);
sleep(1);
&kill_logged('KILL', @killprocs);
&webmin_log("kill", undef, $job->{'id'}, $job);
&redirect("");
sub find_subprocesses
{
local ($pid) = @_;
local @rv;
foreach my $p (@procs) {
if ($p->{'ppid'} && $p->{'ppid'} eq $pid) {
push(@rv, $p->{'pid'}, &find_subprocesses($p->{'pid'}));
}
}
return @rv;
}