App-Daemon
view release on metacpan or search on metacpan
if(my $_as_group = find_option('-g', 1)) {
$as_group = $_as_group;
}
else {
$as_group ||= 'nogroup';
}
if($> != 0) {
# Not root? Then we're ourselves
($as_user) = getpwuid($>);
($as_group) = getgrgid(POSIX::getgid());
}
$background = 1 if(!defined $background);
$background = find_option('-X') ? 0 : $background;
$loglevel = $background ? $INFO : $DEBUG
if(!defined $loglevel);
$loglevel = find_option('-v') ? $DEBUG : $loglevel;
for (qw(start stop restart status)) {
}
###########################################
sub id_switch {
###########################################
if($> == 0) {
# If we're root, become user set as 'as_user' and the group in
# 'as_group'.
# Set the group first because it only works when still root
my ($group,undef,$gid) = getgrnam($as_group);
if(! defined $group) {
LOGDIE "Cannot switch to group $as_group";
}
POSIX::setgid($gid);
my ($name,$passwd,$uid) = getpwnam($as_user);
if(! defined $name) {
LOGDIE "Cannot switch to user $as_user";
}
POSIX::setuid( $uid );
}
}
###########################################
( run in 2.986 seconds using v1.01-cache-2.11-cpan-ceb78f64989 )