Acme-Ghost
view release on metacpan or search on metacpan
lib/Acme/Ghost.pm view on Meta::CPAN
=head1 CONTROL METHODS
List of LSB Daemon Control Methods
These methods can be used to control the daemon behavior.
Every effort has been made to have these methods DWIM (Do What I Mean),
so that you can focus on just writing the code for your daemon.
=head2 ctrl
exit $g->ctrl( shift @ARGV, 'USR2' );
# start, stop, restart, reload, status
Daemon Control Dispatcher with using USR2 to reloading
exit $g->ctrl( shift @ARGV, 0 );
This example shows how to forced suppress reloading (disable send users signals to daemon)
=head2 reload
$exit_code = $g->reload; # SIGHUP (by default)
$exit_code = $g->reload('USR2'); # SIGUSR2
$exit_code = $g->reload(12); # SIGUSR2 too
say "Reloading ". $g->pid;
This method performs sending signal to Your daemon and return C<0> as exit code.
This method is primarily intended to perform a daemon reload
=head2 restart
$exit_code = $g->restart;
if ($exit_code) {
say STDERR "Restart failed " . $g->pid;
} else {
say "Restart successful";
}
This method performs restarting the daemon and returns C<0> as successfully
exit code or C<1> in otherwise
=head2 start
my $exit_code = $g->start;
say "Running ". $g->pid;
exit $exit_code;
This method performs starting the daemon and returns C<0> as exit code.
The spawned process calls the startup handler and exits with status C<0>
as exit code without anything return
=head2 status
if (my $runned = $g->status) {
say "Running $runned";
} else {
say "Not running";
}
This method checks the status of running daemon and returns its PID (alive).
The method returns 0 if it is not running (dead).
=head2 stop
if (my $runned = $g->stop) {
if ($runned < 0) {
die "Daemon " . $g->pid ." is still running";
} else {
say "Stopped $runned";
}
} else {
say "Not running";
}
This method performs stopping the daemon and returns:
+PID -- daemon stopped successfully
0 -- daemon is not running
-PID -- daemon is still running, stop failed
=head1 HOOKS
This class implements the following user-methods (hooks).
Each of the following methods may be implemented (overwriting) in a your class
=head2 preinit
sub preinit {
my $self = shift;
# . . .
}
The preinit() method is called before spawning (forking)
=head2 init
sub init {
my $self = shift;
# . . .
}
The init() method is called after spawning (forking) and after daemonizing
=head2 startup
sub startup {
my $self = shift;
# . . .
}
The startup() method is called after daemonizing in service mode
This is your main hook into the service, it will be called at service startup.
Meant to be overloaded in a subclass.
=head2 cleanup
sub cleanup {
my $self = shift;
my $scope = shift; # 0 or 1
( run in 2.117 seconds using v1.01-cache-2.11-cpan-8f98c5d2c55 )