X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FDaemonize.pm;h=0cf7257c30ba36af31ba05610578465283a3666d;hb=18cc5c89142d5f39decc3098fd26077654d05c6d;hp=ffae57707438a5bcc09a6e94ae371a91ec582422;hpb=2eced27121e8557fe773f6f8804786f29f5660c1;p=gitmo%2FMooseX-Daemonize.git diff --git a/lib/MooseX/Daemonize.pm b/lib/MooseX/Daemonize.pm index ffae577..0cf7257 100644 --- a/lib/MooseX/Daemonize.pm +++ b/lib/MooseX/Daemonize.pm @@ -10,7 +10,11 @@ use Carp 'carp'; 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', @@ -73,11 +77,6 @@ has foreground => ( default => sub { 0 }, ); -has is_daemon => ( - isa => 'Bool', - is => 'rw', - default => sub { 0 }, -); has stop_timeout => ( isa => 'Int', @@ -85,13 +84,6 @@ has stop_timeout => ( default => sub { 2 } ); -sub daemonize { - my ($self) = @_; - return if Proc::Daemon::Fork; - Proc::Daemon::Init; - $self->is_daemon(1); -} - sub start { my ($self) = @_; @@ -135,10 +127,10 @@ sub restart { $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; }