The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Ubic::Service - interface and base class for any ubic service

VERSION

version 1.07

SYNOPSIS

    print "Service: ", $service->name;
    $service->start;
    $service->stop;
    $service->restart;
    $status = $service->status;

DESCRIPTION

All ubic services must be subclasses of this package.

Action methods (like start, stop, reload) and status should return Ubic::Result::Class objects (usually constructed with result method from Ubic::Result).

Or they can return plain strings, Ubic will care about blessing them into result objects.

See "SEE ALSO" for references to more specific (and useful) versions of services.

METHODS

name()
name($new_name)

Name of service.

Each service with the same parent should have an unique name.

In case of subservices, name should be the most lower-level name; use full_name method to get fully-qualified service name.

full_name

Fully qualified name of service.

Each service should have an unique full_name.

It is a concatenation of service's short name and service's <parent_name>.

Service's parent is responsible for setting it (to concatenation of it's own name and service's name) immediately after service's construction.

In case of subservices, initial name should be the most lower-level name; it will be concatenated with names of it's parents by it's parents. (See Ubic::Multiservice's code for more details).

parent_name()
parent_name($new_parent_name)

Get/set name of service's parent.

Service's parent is responsible for calling it immediately after service's construction as $service->parent_name($self->full_name).

start

Start service. Should throw exception on failure and string with operation result otherwise.

Starting already running service should do nothing and return "already running".

stop

Stop service. Should throw exception on failure and string with operation result otherwise.

Stopping already stopped service should do nothing and return "not running".

Successful stop of a service must disable this service.

status

Check real status of service.

It should check that service is running correctly and return "running" if it is so.

reload

Reload service, if possible.

port

Should return port number if service provides a server which uses TCP protocol.

user

Should return user from which the service can be controlled and will be running. Default is root.

check_period

Should return period of checking a service by watchdog in seconds.

Default is 60 seconds and it is unused by ubic-watchdog currently, so don't bother to override it by now :)

custom_commands()

Can return list of service's custom commands, if such are exist.

do_custom_command($command)

Should execute specified command, if it is supported.

SEE ALSO

Ubic::Service::Skeleton - implement simple start/stop/status methods, and ubic will care about everything else.

Ubic::Service::Common - just like Skeleton, but all code can be passed to constructor as sub references.

Ubic::Service::SimpleDaemon - just give it any binary and it will make service from it.

AUTHOR

Vyacheslav Matjukhin <mmcleric@yandex-team.ru>