An open API service indexing awesome lists of open source software.

https://github.com/mons/daemond-lite

Lightweight version of daemonization toolkit
https://github.com/mons/daemond-lite

Last synced: 10 months ago
JSON representation

Lightweight version of daemonization toolkit

Awesome Lists containing this project

README

          

NAME
Daemond::Lite - Lightweight version of daemonization toolkit

SYNOPSIS
package main;
use Daemond::Lite;

name 'sample';
config 'daemon.conf';
children 1;
pid '/tmp/%n.%u.pid';

nocli; # start without commands (start/stop)

getopt {
{
desc => "My custom option",
eqdesc => "=myvalue",
getopt => "option|o=s",
setto => sub { $_[0]{myopt1} = 1 }, # will be accessible via $self->{opt}{myopt1}
},
{
desc => "My custom option 2",
eqdesc => "=mynumber",
getopt => "option|o=i",
setto => sub { $_[0]{myopt2} = 1 }, # will be accessible via $self->{opt}{myopt2}
},
};

logging { # optional
my ($self,$detach) = @_;
Log::Any::Adapter->set('Easy',
$detach ? (
syslog => { ident => $self->name, facility => 'daemon' },
):(
syslog => { ident => $self->name, facility => 'daemon' },
screen => 1
)
);
my $newlog = Log::Any->get_logger();
warn "setup logging $newlog";
$newlog;
};

sub check { # before detach, but after all configuration
warn "$$ checking";
}

sub start { # before fork
warn "$$ starting";
}

sub run { # inside forked child
warn "$$ run";
my $self = shift;
$self->{run} = 1;
while($self->{run}) {
sleep 1;
}
}

sub stop {
warn "$$ stop";
my $self = shift;
$self->{run} = 0;
}

runit();

DESCRIPTION
Easy tool for creating daemons

source: name, pid, conffile, ... config: name, pid, ... getopt:
conffile, pid, ...

AUTHOR
Mons Anderson, ""

COPYRIGHT & LICENSE
Copyright 2012 Mons Anderson, all rights reserved.

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.