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
- Host: GitHub
- URL: https://github.com/mons/daemond-lite
- Owner: Mons
- Created: 2012-12-04T17:33:46.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2022-02-08T10:47:41.000Z (over 4 years ago)
- Last Synced: 2023-05-02T00:20:23.554Z (about 3 years ago)
- Language: Perl
- Size: 124 KB
- Stars: 5
- Watchers: 4
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README
- Changelog: Changes
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.