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"; };
This function supports the following hooks:
- before_action
-
For example: before_start, before_stop, before_restart
This gets executed right before the service action.
- after_action
-
For example: after_start, after_stop, after_restart
This gets executed right after the service action.
- service_provider_for $os => $type;
-
To set an other 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).