Provided by: rex_1.14.0-1_all bug

NAME

       Rex::Commands::Service - Manage System Services

DESCRIPTION

       With this module you can manage Linux services.

SYNOPSIS

        use Rex::Commands::Service

        service apache2 => "start";

        service apache2 => "stop";

        service apache2 => "restart";

        service apache2 => "status";

        service apache2 => "reload";

        service apache2 => "ensure", "started";

        service apache2 => "ensure", "stopped";

EXPORTED FUNCTIONS

   service($service, $action, [$option])
       The service function accepts 2 parameters. The first is the service name and the second
       the action you want to perform.

       starting a service
            task "start-service", "server01", sub {
              service apache2 => "start";
            };

       stopping a service
            task "stop-service", "server01", sub {
              service apache2 => "stop";
            };

       restarting a service
            task "restart-service", "server01", sub {
              service apache2 => "restart";
            };

       checking status of a service
            task "status-service", "server01", sub {
              if( service apache2 => "status" ) {
                say "Apache2 is running";
              }
              else {
                say "Apache2 is not running";
              }
            };

       reloading a service
            task "reload-service", "server01", sub {
              service apache2 => "reload";
            };

       ensure that a service will started at boot time
            task "prepare", sub {
              service "apache2",
                ensure => "started";
            };

       ensure that a service will NOT be started.
            task "prepare", sub {
              service "apache2",
                ensure => "stopped";
            };

           If you need to define a custom command for start, stop, restart, reload or status you
           can do this with the corresponding options.

            task "prepare", sub {
              service "apache2",
                ensure  => "started",
                start   => "/usr/local/bin/httpd -f /etc/my/httpd.conf",
                stop    => "killall httpd",
                status  => "ps -efww | grep httpd",
                restart => "killall httpd && /usr/local/bin/httpd -f /etc/my/httpd.conf",
                reload  => "killall httpd && /usr/local/bin/httpd -f /etc/my/httpd.conf";
            };

           This function supports the following hooks:

           before_${action}
               For example: "before_start", "before_stop", "before_restart"

               This gets executed right before the given service action. All original parameters
               are passed to it.

           after_${action}
               For example: "after_start", "after_stop", "after_restart"

               This gets executed right after the given service action. All original parameters,
               and any returned results are passed to it.

   service_provider_for $os => $type;
       To set another service provider as the default, use this function.

        user "root";

        group "db" => "db[01..10]";
        service_provider_for SunOS => "svcadm";

        task "start", group => "db", sub {
           service ssh => "restart";
        };

       This example will restart the ssh service via svcadm (but only on SunOS, on other
       operating systems it will use the default).