NAME
Proc::Daemontools::Service - services that play nicely with daemontools
VERSION
0.02
SYNOPSIS
package Foo::Service;
use base qw(Proc::Daemontools::Service);
sub svc_up { ... }
# In other code...
my $serv = Foo::Service->new;
$serv->run;
DESCRIPTION
See the daemontools page, at http://cr.yp.to/daemontools.html, and particularly the svc page, at http://cr.yp.to/daemontools/svc.html.
METHODS
new
Takes no arguments (yet).
run
Install signal handlers and call svc_run
, which may continue indefinitely.
If svc_run
ever finishes, calls exit
.
exit
$serv->exit($exit_status);
Exit, calling svc_exit
first if it exists. Default signal handlers call this.
install_handlers
Install signal handlers to queue signals for processing by svc_*
methods, below.
NOTE: signal handlers are global. This means that two instances of Proc::Daemontools::Service will fight with each other. Don't do that.
HOOKS
svc_run
Called by run
. Your main program body should be here.
svc_exit
Called by exit
. Any cleanup should be here. (optional)
SIGNALS
Subclasses should define their own copy of each of these methods. They will be called by Proc::Daemontools::Service as signals are caught.
Names are taken from the full names of svc options.
When called, these methods will be passed a hashref indicating state.
- signal
-
the name of the signal (e.g. TERM)
- signum
-
the number of the signal (e.g. 15)
svc_hangup
svc_alarm
svc_interrupt
svc_terminate
DEFAULT HANDLERS
Uncaught signals will cause your program to exit. If your package defines a svc_exit
method, it will be called before exiting (see "exit").
The exit value will be the number of the signal that caused program exit.
svc_default
Override this method to provide your own default for the signals listed above.
UNCATCHABLE SIGNALS
KILL
STOP
CONT
Technically CONT isn't uncatchable; however, given that you can't catch STOP, you probably don't want to catch CONT either.
AUTHOR
Hans Dieter Pearcey, <hdp@cpan.org>
BUGS
Please report any bugs or feature requests to bug-proc-daemontools-service@rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-Daemontools-Service. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
Copyright 2006 Hans Dieter Pearcey, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.