Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

Proc::Application::Daemon
daemon class based on Proc::Application;

Proc::Application::Daemon - daemon class based on Proc::Application;


NAME

Proc::Application::Daemon - daemon class based on Proc::Application;


SYNOPSIS


 package Program;

 use Proc::Application::Daemon;

 use base qw(Proc::Application::Daemon);

 sub handler 

 {

     my ( $his, $clientSocket ) = @_;

     $this->socket->print ( 'Done' );

     $this->log->warning ( 'warning' );

     die "Error";

 }

 package main;

 Program->new->run();


DESCRIPTION

daemon class based on Proc::Application;

new

A construtror, setup childs and childCount

options

Add mode (fork|single|prefork=[count]) and socket (domain=unix|inet|ssl:all_io::socket:: parameter) options

processSocketCreate

Handler for socket option. Create new socket and store it to $object->{socket}

processModeParameter

Child for 'prefork=count' mode and setup preforkCount option

socket

Return a client socket from $object->{socket}

mainSocket

Return a main daemon socket from $object->{socket}

done

You must return 'true' for end main loop

mainHandler

Call handler() method with $cliendSocket atrument, log the errors of execution and close client socket at exit

handler

Real work method, get $this and $clientSocket argumentds.

childs

Return a hash reference of childs with keys with pids

processSigChild

SIGCHLD processor. Get a child pid by waitpid() and delete it from childs()

forkFunction

Get three code refs ( for run at parent, child and error fork sitiations ), fork process and execute parameters functions. Store pid of new process at childs(), exit(0) at child after execute of child function, log fork error and sleep(1) after fork error. funtions

threadFunction

realMain

Main loop. accept() the new connection, and fork (if fork more) and pass execution to mainHandler

main

Prefork processes if prefork mode, loop up for preforked childs count and call realMain()

DESTROY

Send TERM signal to all childs and call parent DESTROY()

Log Debug Error Fatal Run Options

for compatibility with Net::Daemon

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy