Munin::Node::OS.3pm

Langue: en

Autres versions - même langue

Version: 2010-07-08 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Munin::Node::OS - OS related utility methods for the munin node.

SYNOPSIS

  use Munin::Node::OS;
  my $uid  = Munin::Node::OS->get_uid('foo');
  my $host = Munin::Node::OS->get_fq_hostname();
 
 

METHODS

get_uid
  $uid = $class->get_uid($user)
 
 

Returns the user ID. $user might either be a user name or a user ID. Returns undef if the user is nonexistent.

get_gid
  $gid = $class->get_gid($group)
 
 

Returns the group ID. $group might either be a group name or a group ID. Returns undef if the group is nonexistent.

get_fq_hostname
  $host = $class->get_fq_hostname()
 
 

Returns the fully qualified host name of the machine.

check_perms
  $bool = $class->check_perms($target);
 
 

If paranoia is enabled, returns false unless $target is owned by root, and has safe permissions. If $target is a file, also checks the directory it inhabits.

run_as_child
   $result = run_as_child($timeout, $coderef, @arguments);
 
 

Creates a child process to run $code and waits for up to $timeout seconds for it to complete. Returns a hashref containg the following keys:

stdout, stderr
Array references containing the output of these filehandles;
retval
The result of wait();
timed_out
True if the child had to be interrupted.

System errors will cause it to carp.
reap_child_group
  $class->reap_child_group($pid);
 
 

Sends SIGHUP and SIGKILL to the process group identified by $pid.

Sleeps for 2 seconds between SIGHUP and SIGKILL.

possible_to_signal_process
  my $bool = $class->possible_to_signal_process($pid)
 
 

Check whether itaXXs possible to send a signal to $pid (that means, to be brief, that the process is owned by the same user, or we are the super-user). This is a useful way to check that a child process is alive (even if only as a zombie) and hasnaXXt changed its UID.

set_effective_user_id
  eval {
      $class->set_effective_user_id($uid);
  };
  if ($@) {
      # Failed to set EUID
  }
 
 

The name says it all ...

set_effective_group_id
See documentation for set_effective_user_id()
set_real_user_id
See documentation for set_effective_user_id()
set_real_group_id
See documentation for set_effective_user_id()