sub verify_services {
my $service = shift;
return 1 if $service and $service eq 'router';
- my @services = (@perl_services, map {$_->{service}} @nonperl_services);
+ my @services = map {$_->{service}} (@perl_services, @nonperl_services);
if (@services) {
return 1 unless $service;
return 1 if grep { $_ eq $service } @services;
my @conf_services;
if ($alive) {
- @conf_services = (@perl_services,
- map {$_->{service}} @nonperl_services);
+ @conf_services = map {$_->{service}} (@perl_services, @nonperl_services);
}
my @services;
next;
}
my $lang = $sclient->config_value('apps', $app, 'language') || '';
+ my $max_drones = $sclient->config_value('apps', $app, 'unix_config', 'max_children') || 0;
+ my $min_drones = $sclient->config_value('apps', $app, 'unix_config', 'min_children') || 0;
if ($lang =~ /perl/i) {
- push(@perl_services, $app);
+ push(@perl_services, {service => $app, lang => $lang});
} else {
- push(@nonperl_services, {service => $app, lang => $lang});
+ push(@nonperl_services, {service => $app, lang => $lang, max_drones => $max_drones});
}
}
}
load_settings() if $service eq 'opensrf.settings';
- if(grep { $_ eq $service } @perl_services) {
+ if(grep { $_->{service} eq $service } @perl_services) {
return unless do_daemon($service);
OpenSRF::System->run_service($service, $opt_pid_dir);
sub do_start_services {
msg("starting services for $hostname");
- if(grep {$_ eq 'opensrf.settings'} @perl_services) {
+ if(grep {$_->{service} eq 'opensrf.settings'} @perl_services) {
do_start('opensrf.settings');
# in batch mode, give opensrf.settings plenty of time to start
# before any non-Perl services try to connect
}
# start Perl services
- for my $service (@perl_services) {
+ for my $service (map {$_->{service}} @perl_services) {
do_start($service) unless $service eq 'opensrf.settings';
}