Footprintless::Service

- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- ENTITIES
- CONSTRUCTORS
  - new($entity, $coordinate, %options)
- METHODS
  - execute($action)
  - kill()
  - start()
  - status()
  - stop()
- AUTHOR
- COPYRIGHT AND LICENSE
- SEE ALSO

# NAME

Footprintless::Service - Performs an action on a service.

# VERSION

version 1.11

# SYNOPSIS

        # Standard way of getting a service
        use Footprintless;
        my $service = Footprintless->new()->service();

        $service->stop();

        $service->start();

        $service->status();

        $service->kill();

# DESCRIPTION

Manages services. Allows you to start, stop, check the status of, and kill services. Additional actions can be configured as well.

# ENTITIES

A simple service (the most common case) can be defined:

        service => {
            command => '/opt/foo/bar.sh',
            pid_file => '/var/run/bar/bar.pid'
        }

A more complex service might be defined:

        service => {
            actions => {
                debug => {command_args => "jpda start"},
                kill => {command_args => "stop -kill"},
                status => {use_pid => 1, command_name => 'tomcat'},
            },
            command => '/opt/tomcat/catalina.sh',
            hostname => 'tomcat.pastdev.com',
            pid_command => 'ps -aef|grep "/opt/tomcat/"|grep -v grep|awk \'{print \$2}\'',
            sudo_username => 'tomcat',
        }

In this case, an additional action, debug, was added, kill was redefined as a special case of stop, and status was redefined to use the pid (ex: kill -0 $pid). Also, the pid is found via command rather than a file.

# CONSTRUCTORS

## new($entity, $coordinate, %options)

Constructs a new service configured by `$entities` at `$coordinate`. The supported options are:

command_options_factory

  The command options factory to use. Defaults to an instance of Footprintless::CommandOptionsFactory using the `localhost` instance of this object.

command_runner

  The command runner to use. Defaults to an instance of Footprintless::CommandRunner::IPCRun.

localhost

  The localhost alias resolver to use. Defaults to an instance of Footprintless::Localhost configured with `load_all()`.

# METHODS

## execute($action)

Executes `$action` on the service.

## kill()

Kills the service.

## start()

Starts the service.

## status()

Prints out the status of the service.

## stop()

Stops the service.

# AUTHOR

Lucas Theisen <lucastheisen@pastdev.com>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Lucas Theisen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

# SEE ALSO

Please see those modules/websites for more information related to this module.

- Footprintless
- Config::Entities
- Footprintless
- Footprintless::CommandOptionsFactory
- Footprintless::CommandRunner
- Footprintless::Localhost