App-Base
view release on metacpan or search on metacpan
lib/App/Base/Daemon.pm view on Meta::CPAN
return $result;
}
sub _set_user_and_group {
my $self = shift;
my $user = $self->getOption('user') // $self->user;
my $group = $self->getOption('group') // $self->group;
if ($user or $group) {
if ($> == 0) {
my ($uid, $gid) = (0, 0);
if ($group) {
$gid = getgrnam($group) or $self->error("Can't find group $group");
}
if ($user) {
$uid = getpwnam($user) or $self->error("Can't find user $user");
}
if ($uid or $gid) {
chown $uid, $gid, $self->pid_file;
}
if ($gid) {
POSIX::setgid($gid);
}
if ($uid) {
POSIX::setuid($uid);
}
} else {
warn("Not running as root, can't setuid/setgid") unless $self->getOption('no-warn');
}
}
return;
}
=head2 error
Handles the output of errors, including shutting down the running daemon by
calling handle_shutdown(). If you have a serious problem that should NOT
( run in 0.531 second using v1.01-cache-2.11-cpan-ceb78f64989 )