The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Rex::Commands::Process - Process management commands

DESCRIPTION

With this module you can manage processes. List, Kill, and so on.

Version <= 1.0: All these functions will not be reported.

All these functions are not idempotent.

SYNOPSIS

kill $pid;
killall "apache2";
nice($pid, $level);

EXPORTED FUNCTIONS

kill($pid, $sig)

Will kill the given process id. If $sig is specified it will kill with the given signal.

task "kill", "server01", sub {
  kill 9931;
  kill 9931, -9;
};

killall($name, $sig)

Will kill the given process. If $sig is specified it will kill with the given signal.

task "kill-apaches", "server01", sub {
  killall "apache2";
  killall "apache2", -9;
};

ps

List all processes on a system. Will return all fields of a ps aux.

task "ps", "server01", sub {
  for my $process (ps()) {
   say "command  > " . $process->{"command"};
   say "pid    > " . $process->{"pid"};
   say "cpu-usage> " . $process->{"cpu"};
  }
};

On most operating systems it is also possible to define custom parameters for ps() function.

task "ps", "server01", sub {
  my @list = grep { $_->{"ni"} == -5 } ps("command","ni");
};

This example would contain all processes with a nice of -5.

nice($pid, $level)

Renice a process identified by $pid with the priority $level.

task "renice", "server01", sub {
  nice (153, -5);
};