set proctitle on daemon
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user