Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
sub PsExecute {
my $command = shift;
my $timeout = shift || 10;
my $output_file = shift || '/dev/null';
my $child_pid = fork();
defined($child_pid) or die "Couldn't fork(): $!\n";
if ($child_pid == 0) {
exec "$command > $output_file 2>&1";
}
local $SIG{ALRM} = sub {
kill 9, $child_pid;
die "Command `$command' timed out!\n";
};
alarm $timeout;
waitpid $child_pid, 0;
alarm 0;
}
Установить время выполнения консольной команды