Munin::Node::OS - OS related utility methods for the Munin node.
use Munin::Node::OS;
my $uid = Munin::Node::OS->get_uid('foo');
my $host = Munin::Node::OS->get_fq_hostname();
- 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 doesn't
exist.
- 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 doesn't
exist.
- get_fq_hostname
-
$host = $class->get_fq_hostname()
Returns the fully qualified host name of the machine.
- check_perms_if_paranoid
-
$bool = $class->check_perms_if_paranoid($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 containing 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 it's 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 hasn't 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()
- set_umask
- Set umask so that files created by plugins are group writable Only call
right before exec-ing a plugin.