try again
[spider.git] / perl / cluster.pl
index cab4b0baf24339032f360f541bfb791049653f4d..6cdd417d16ccf2b4cfabf8fcf7fed20ca6a5e907 100755 (executable)
@@ -327,10 +327,23 @@ dbg('err', "starting listener ...");
 Msg->new_server("$clusteraddr", $clusterport, \&login);
 
 # prime some signals
-$SIG{'INT'} = \&cease;
-$SIG{'TERM'} = \&cease;
-$SIG{'HUP'} = 'IGNORE';
-$SIG{'CHLD'} = \&reap;
+$SIG{INT} = \&cease;
+$SIG{TERM} = \&cease;
+$SIG{HUP} = 'IGNORE';
+$SIG{CHLD} = \&reap;
+
+$SIG{PIPE} = sub {     dbg('err', "Broken PIPE signal received"); };
+$SIG{IO} = sub {       dbg('err', "SIGIO received"); };
+$SIG{WINCH} = $SIG{STOP} = $SIG{CONT} = 'IGNORE';
+$SIG{KILL} = 'DEFAULT';     # as if it matters....
+
+# catch the rest with a hopeful message
+for (keys %SIG) {
+       if (!$SIG{$_}) {
+               dbg('chan', "Catching SIG $_");
+               $SIG{$_} = sub { my $sig = shift;       DXDebug::confess("Caught signal $sig");  }; 
+       }
+}
 
 # read in system messages
 DXM->init();
@@ -381,11 +394,6 @@ dbg('err', "orft we jolly well go ...");
 
 #open(DB::OUT, "|tee /tmp/aa");
 
-$SIG{PIPE} = sub { 
-       #$DB::single = 1;  
-       dbg('err', "Broken PIPE signal received"); 
-};
-
 for (;;) {
        my $timenow;
 #      $DB::trace = 1;