mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-20 19:04:59 +00:00
Add certain env vars to crontab commands. Run one start-once service at a time and warn if any one fails. Temp hack to stop running turn-off services.
This commit is contained in:
40
bin/pt-agent
40
bin/pt-agent
@@ -5731,15 +5731,19 @@ sub make_new_crontab {
|
|||||||
split("\n", $crontab_list);
|
split("\n", $crontab_list);
|
||||||
PTDEBUG && _d('Other crontab lines:', Dumper(\@other_lines));
|
PTDEBUG && _d('Other crontab lines:', Dumper(\@other_lines));
|
||||||
|
|
||||||
|
my $env_vars = env_vars();
|
||||||
|
|
||||||
my @pt_agent_lines;
|
my @pt_agent_lines;
|
||||||
foreach my $service ( @$services ) {
|
foreach my $service ( @$services ) {
|
||||||
push @pt_agent_lines,
|
push @pt_agent_lines,
|
||||||
$service->run_schedule
|
($env_vars ? "$env_vars " : '')
|
||||||
|
. $service->run_schedule
|
||||||
. " ${bin_dir}pt-agent --run-service "
|
. " ${bin_dir}pt-agent --run-service "
|
||||||
. $service->name;
|
. $service->name;
|
||||||
if ( $service->spool_schedule ) {
|
if ( $service->spool_schedule ) {
|
||||||
push @pt_agent_lines,
|
push @pt_agent_lines,
|
||||||
$service->spool_schedule
|
($env_vars ? "$env_vars " : '')
|
||||||
|
. $service->spool_schedule
|
||||||
. " ${bin_dir}pt-agent --send-data "
|
. " ${bin_dir}pt-agent --send-data "
|
||||||
. $service->name;
|
. $service->name;
|
||||||
}
|
}
|
||||||
@@ -5767,14 +5771,26 @@ sub start_services {
|
|||||||
my $bin_dir = defined $args{bin_dir} ? $args{bin_dir}
|
my $bin_dir = defined $args{bin_dir} ? $args{bin_dir}
|
||||||
: "$FindBin::Bin/";
|
: "$FindBin::Bin/";
|
||||||
|
|
||||||
|
my $env_vars = env_vars();
|
||||||
foreach my $service ( @$services ) {
|
foreach my $service ( @$services ) {
|
||||||
next unless $service->run_once;
|
next unless $service->run_once;
|
||||||
my $cmd = "${bin_dir}pt-agent --run-service " . $service->name
|
next if $service->name =~ m/^turn-off/; # XXX TODO
|
||||||
|
my $tmp_file = "$lib_dir/logs/" . $service->name . ".start";
|
||||||
|
my $cmd = ($env_vars ? "$env_vars " : '')
|
||||||
|
. "${bin_dir}pt-agent --run-service " . $service->name
|
||||||
. " </dev/null"
|
. " </dev/null"
|
||||||
. " >$lib_dir/logs/" . $service->name . ".log"
|
. " >$tmp_file 2>&1";
|
||||||
. " 2>&1 &";
|
|
||||||
_info('Starting ' . $service->name . ' service: ' . $cmd);
|
_info('Starting ' . $service->name . ' service: ' . $cmd);
|
||||||
system($cmd);
|
system($cmd);
|
||||||
|
my $exit_status = $CHILD_ERROR >> 8;
|
||||||
|
if ( $exit_status != 0 ) {
|
||||||
|
my $err = slurp($tmp_file);
|
||||||
|
_warn('Error starting ' . $service->name . ': ' . ($err || ''));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
unlink $tmp_file
|
||||||
|
or _warn("Cannot remove $tmp_file: $OS_ERROR");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -6430,6 +6446,20 @@ EOL
|
|||||||
return \%version_for;
|
return \%version_for;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub env_vars {
|
||||||
|
my @vars;
|
||||||
|
foreach my $var ( qw(
|
||||||
|
PTDEBUG
|
||||||
|
PERCONA_TOOLKIT_TEST_USE_DSN_NAMES
|
||||||
|
PWS_ENTRY_LINK
|
||||||
|
)) {
|
||||||
|
if ( my $val = $ENV{$var} ) {
|
||||||
|
push @vars, "$var=\"$val\"";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return join(' ', @vars);
|
||||||
|
}
|
||||||
|
|
||||||
sub _state {
|
sub _state {
|
||||||
return $state;
|
return $state;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user