GPD: Why a General Purpose Daemon

JP Navarro, navarro@mcs.anl.gov


Abstract

Daemons are time honored technique to implement services on Unix platforms. Some distributed systems administration functions can be more effectively implemented using daemons rather than rsh/ssh. Developing a new daemon each time one is desired is a barrier to their use, since it's can be a significant development task to implement one in a way that includes advanced features like non-blocking I/O operations and handling multiple clients concurrently.

Perl's IO::Socket and IO::Select modules are a great foundation for building daemons. GPD uses these modules to implement a generic daemon that can jumpstart application specific daemon development. In it's current implementation just grab the GPD code and customize the IntCmd & ExtCmd hashes to define your own functions or external commands.


Requirements

Developed and tested w/ Perl 5.00503.


Specification

Specification.


Program Name: GPD

General Purpose Daemons, is intended to be configurable to perform any type of daemond/server functionality.


Usage

See 'gpd -h'.


Errors

Errors.


Implementation

Just Beta for now.


Random Ideas

This needs to become a Perl Library or Module so it's easier to distinguish between the gpd package and the site implementation/customizations.