Rex::Commands::Service - Manage System Services
With this module you can manage Linux services.
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";
The service function accepts 2 parameters. The first is the service name and the second the action you want to perform.
task "start-service", "server01", sub { service apache2 => "start"; };
task "stop-service", "server01", sub { service apache2 => "stop"; };
task "restart-service", "server01", sub { service apache2 => "restart"; };
task "status-service", "server01", sub { if( service apache2 => "status" ) { say "Apache2 is running"; } else { say "Apache2 is not running"; } };
task "reload-service", "server01", sub { service apache2 => "reload"; };
task "prepare", sub { service "apache2", ensure => "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:
For example: before_start, before_stop, before_restart
This gets executed right before the service action.
For example: after_start, after_stop, after_restart
This gets executed right after the service action.
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).
To install Rex, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Rex
CPAN shell
perl -MCPAN -e shell install Rex
For more information on module installation, please visit the detailed CPAN module installation guide.