LP1930578: Really Stop Single Services
authorJason Boyer <JBoyer@EquinoxInitiative.org>
Wed, 2 Jun 2021 13:43:12 +0000 (09:43 -0400)
committerGalen Charlton <gmc@equinoxOLI.org>
Thu, 2 Dec 2021 21:00:24 +0000 (16:00 -0500)
Use the same timeout / escalation method for single services as is
used for all services. Punted on any real refactoring for now.

Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
bin/opensrf-perl.pl.in

index d2f5267..b2bced6 100755 (executable)
@@ -113,7 +113,6 @@ if ($opt_localhost) {
 }
 
 my $C_COMMAND = "opensrf-c -c $opt_config -x opensrf -p $opt_pid_dir -h $hostname";
-my $PY_COMMAND = "opensrf.py -f $opt_config -p $opt_pid_dir ". ($opt_localhost ? '-l' : '');
 
 sub verify_services {
     my $service = shift;
@@ -446,7 +445,12 @@ sub do_start_services {
 sub do_signal {
     my $service = shift;
     my $signal = shift;
-    return do_signal_all($signal, $service);
+    do_signal_send($service, $signal);
+
+    # if user passed a know non-shutdown signal, we're done.
+    return 1 if $signal =~ /HUP|USR1|USR2/;
+
+    return do_signal_wait($service);
 }
 
 # returns the list of running services based on presence of PID files.