Rex::Co...Service(3)

πŸ“¦ version 1.14.3, in nixos 26.05, nixpkgs unstable

🌸 NAME 🌸

okay bestie, welcome to Rex::Co...Service(3) β€” the User Contributed Perl Documentation page for Rex::Commands::Service, aka Manage System Services ✨. This is your little group chat for wrangling Linux services.

πŸ’– DESCRIPTION πŸ’–

With this module you can manage Linux services. That's the whole vibe. 🫢

✨ 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 is the action you want to perform. (The signature also shows [$option], bestie β€” no cap, it's right there.) πŸ’–

πŸš€ 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). πŸ”₯


and that's the whole page, bestie 🫢. tiny sign-off: this came from perl v5.42.3, dated 2023-08-05, with the footer name Rex::Co...Service(3). periodt πŸ’…

πŸ“¦ where this page comes from