mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 13:11:32 +00:00
95 lines
1.9 KiB
Perl
Executable File
95 lines
1.9 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
# This script is used by Daemon.t because that test script
|
|
# cannot daemonize itself.
|
|
|
|
BEGIN {
|
|
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
|
|
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
|
|
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
|
|
};
|
|
|
|
use strict;
|
|
use warnings FATAL => 'all';
|
|
use English qw(-no_match_vars);
|
|
|
|
use constant PTDEBUG => $ENV{PTDEBUG} || 0;
|
|
use constant PTDEVDEBUG => $ENV{PTDEVDEBUG} || 0;
|
|
|
|
use Time::HiRes qw(sleep);
|
|
|
|
use Daemon;
|
|
use OptionParser;
|
|
use PerconaTest;
|
|
|
|
my $o = new OptionParser(file => "$trunk/t/lib/samples/daemonizes.pl");
|
|
$o->get_specs();
|
|
$o->get_opts();
|
|
|
|
my ($sleep_time) = shift @ARGV;
|
|
if ( !defined $sleep_time ) {
|
|
$o->save_error('No SLEEP_TIME specified');
|
|
}
|
|
|
|
$o->usage_or_errors();
|
|
|
|
my $daemon = Daemon->new(
|
|
daemonize => $o->get('daemonize'),
|
|
pid_file => $o->get('pid'),
|
|
log_file => $o->get('log'),
|
|
);
|
|
|
|
$daemon->run();
|
|
PTDEVDEBUG && PerconaTest::_d('daemonized');
|
|
|
|
print "STDOUT\n";
|
|
print STDERR "STDERR\n";
|
|
|
|
PTDEVDEBUG && PerconaTest::_d('daemon sleep', $sleep_time);
|
|
sleep $sleep_time;
|
|
|
|
PTDEVDEBUG && PerconaTest::_d('daemon done');
|
|
exit;
|
|
|
|
# ############################################################################
|
|
# Documentation.
|
|
# ############################################################################
|
|
|
|
=pod
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
Usage: daemonizes.pl SLEEP_TIME
|
|
|
|
daemonizes.pl daemonizes, prints to STDOUT and STDERR, sleeps and exits.
|
|
|
|
=head1 OPTIONS
|
|
|
|
This tool accepts additional command-line arguments. Refer to the
|
|
L<"SYNOPSIS"> and usage information for details.
|
|
|
|
=over
|
|
|
|
=item --daemonize
|
|
|
|
Fork to background and detach (POSIX only). This probably doesn't work on
|
|
Microsoft Windows.
|
|
|
|
=item --help
|
|
|
|
Show help and exit.
|
|
|
|
=item --log
|
|
|
|
type: string
|
|
|
|
Print all output to this file when daemonized.
|
|
|
|
=item --pid
|
|
|
|
type: string
|
|
|
|
Create the given PID file when daemonized.
|
|
|
|
=back
|