X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F30.with_pid_file.t;h=deb09172e36144d8704353654e1470fb3f8371de;hb=f3372ec96b39b4940acc393785b63df2ac229b96;hp=fb9629b1318069373ae314f390351259f4f56db9;hpb=45b2dbae89e36c43903a81c0fb16555f06a41e9a;p=gitmo%2FMooseX-Daemonize.git diff --git a/t/30.with_pid_file.t b/t/30.with_pid_file.t index fb9629b..deb0917 100644 --- a/t/30.with_pid_file.t +++ b/t/30.with_pid_file.t @@ -12,7 +12,7 @@ my $dir = tempdir( CLEANUP => 1 ); BEGIN { - use_ok('MooseX::Daemonize::Core'); + use_ok('MooseX::Daemonize::Core'); } use constant DEBUG => 0; @@ -24,33 +24,33 @@ $ENV{MX_DAEMON_STDERR} = catfile($dir, 'Err.txt'); { package MyFooDaemon; use Moose; - + with 'MooseX::Daemonize::WithPidFile'; - + sub init_pidfile { MooseX::Daemonize::Pid::File->new( file => $PIDFILE ) } - + sub start { my $self = shift; - - # this tests our bad PID + + # this tests our bad PID # cleanup functionality. print "Our parent PID is " . $self->pidfile->pid . "\n" if ::DEBUG; - + $self->daemonize; return unless $self->is_daemon; - + # make it easy to find with ps $0 = 'test-app-2'; - $SIG{INT} = sub { - print "Got INT! Oh Noes!"; + $SIG{INT} = sub { + print "Got INT! Oh Noes!"; $self->pidfile->remove; exit; - }; + }; while (1) { - print "Hello from $$\n"; - sleep(10); + print "Hello from $$\n"; + sleep(10); } exit; } @@ -96,7 +96,15 @@ if (DEBUG) { } kill INT => $p->pid; diag "killed $pid" if DEBUG; -sleep(2); + +# give the process time to be killed on slow/loaded systems +for (1..10) { + last unless kill 0 => $pid; + # sleep a little before retrying + sleep(2); +} + + if (DEBUG) { diag `ps $pid`; diag "-------";