NAME
Rex::Commands::Service - Manage System Services
DESCRIPTION
With this module you can manage Linux services.
SYNOPSIS
use Rex::Commands::Serviceservice 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).