use Proc::Daemon;
use MooseX::Daemonize::PidFile;
-with qw(MooseX::Getopt);
+with qw[
+ MooseX::Daemonize::Core
+ MooseX::Daemonize::SignalHandling
+ MooseX::Getopt
+];
has progname => (
isa => 'Str',
default => sub { 0 },
);
-has is_daemon => (
- isa => 'Bool',
- is => 'rw',
- default => sub { 0 },
-);
has stop_timeout => (
isa => 'Int',
default => sub { 2 }
);
-sub daemonize {
- my ($self) = @_;
- return if Proc::Daemon::Fork;
- Proc::Daemon::Init;
- $self->is_daemon(1);
-}
-
sub start {
my ($self) = @_;
$self->start();
}
-sub setup_signals {
- my ($self) = @_;
- $SIG{INT} = sub { $self->handle_sigint; };
- $SIG{HUP} = sub { $self->handle_sighup };
+sub handle_signal {
+ my ($self, $signal) = @_;
+ return $self->handle_sigint if $signal eq 'INT';
+ return $self->handle_sighup if $signal eq 'HUP';
}
sub handle_sigint { $_[0]->stop; }