set proctitle on daemon

This commit is contained in:
Oliver Gorwits
2014-08-05 22:14:58 +01:00
parent c75c48a558
commit f51941076f
3 changed files with 14 additions and 5 deletions

View File

@@ -69,6 +69,7 @@ Daemon::Control->new({
sub restarter { sub restarter {
my ($daemon, @program_args) = @_; my ($daemon, @program_args) = @_;
$0 = 'netdisco-daemon';
my $child = fork_and_start($daemon, @program_args); my $child = fork_and_start($daemon, @program_args);
exit(1) unless $child; exit(1) unless $child;

View File

@@ -29,7 +29,6 @@ use NetAddr::IP::Lite ':lower';
use List::Util 'sum'; use List::Util 'sum';
use Role::Tiny::With; use Role::Tiny::With;
use MCE::Signal '-setpgrp'; use MCE::Signal '-setpgrp';
setpgrp(0,0); # only portable variety of setpgrp
use MCE; use MCE;
# set temporary MCE files' location in home directory # set temporary MCE files' location in home directory
@@ -37,6 +36,9 @@ my $home = ($ENV{NETDISCO_HOME} || $ENV{HOME});
my $tmp_dir = ($ENV{NETDISCO_TEMP} || dir($home, 'tmp')); my $tmp_dir = ($ENV{NETDISCO_TEMP} || dir($home, 'tmp'));
mkdir $tmp_dir if ! -d $tmp_dir; mkdir $tmp_dir if ! -d $tmp_dir;
setpgrp(0,0); # only portable variety of setpgrp
$0 = 'netdisco-daemon: master';
my $mce = MCE->new( my $mce = MCE->new(
spawn_delay => 0.15, spawn_delay => 0.15,
job_delay => 1.15, job_delay => 1.15,
@@ -92,6 +94,7 @@ sub worker_factory {
return sub { return sub {
my $self = shift; my $self = shift;
my $wid = $self->wid; my $wid = $self->wid;
$0 = sprintf 'netdisco-daemon: worker #%s %s: init', $wid, lc($role);
info "applying role $role to worker $wid"; info "applying role $role to worker $wid";
# $self->sendto('stderr', ">>> worker $wid starting with role $role\n"); # $self->sendto('stderr', ">>> worker $wid starting with role $role\n");

View File

@@ -11,11 +11,12 @@ use App::Netdisco::JobQueue qw/jq_locked jq_getsome jq_lock/;
sub worker_begin { sub worker_begin {
my $self = shift; my $self = shift;
my $wid = $self->wid; my $wid = $self->wid;
debug "entering Manager ($wid) worker_begin()";
if (setting('workers')->{'no_manager'}) { return debug "mgr ($wid): no need for manager... skip begin"
return debug "mgr ($wid): no need for manager... skip begin"; if setting('workers')->{'no_manager'};
}
$0 = sprintf 'netdisco-daemon: worker #%s manager: begin', $wid;
debug "entering Manager ($wid) worker_begin()";
# requeue jobs locally # requeue jobs locally
debug "mgr ($wid): searching for jobs booked to this processing node"; debug "mgr ($wid): searching for jobs booked to this processing node";
@@ -34,6 +35,7 @@ sub worker_body {
return debug "mgr ($wid): no need for manager... quitting" return debug "mgr ($wid): no need for manager... quitting"
if setting('workers')->{'no_manager'}; if setting('workers')->{'no_manager'};
$0 = sprintf 'netdisco-daemon: worker #%s manager: body', $wid;
my $num_slots = sum( 0, map { setting('workers')->{$_} } my $num_slots = sum( 0, map { setting('workers')->{$_} }
values %{setting('job_type_keys')} ); values %{setting('job_type_keys')} );
@@ -47,6 +49,8 @@ sub worker_body {
# check for available local capacity # check for available local capacity
my $job_type = setting('job_types')->{$job->action}; my $job_type = setting('job_types')->{$job->action};
next unless $job_type and $self->do('capacity_for', $job_type); next unless $job_type and $self->do('capacity_for', $job_type);
$0 = sprintf 'netdisco-daemon: worker #%s manager: booking %s', $wid, $job->id;
debug sprintf "mgr (%s): processing node has capacity for job %s (%s)", debug sprintf "mgr (%s): processing node has capacity for job %s (%s)",
$wid, $job->id, $job->action; $wid, $job->id, $job->action;
@@ -60,6 +64,7 @@ sub worker_body {
} }
debug "mgr ($wid): sleeping now..."; debug "mgr ($wid): sleeping now...";
$0 = sprintf 'netdisco-daemon: worker #%s manager: idle', $wid;
sleep( setting('workers')->{sleep_time} || 2 ); sleep( setting('workers')->{sleep_time} || 2 );
} }
} }