Changeset 6

Show
Ignore:
Timestamp:
11/20/07 01:56:15 (1 year ago)
Author:
twidi
Message:

tentatives supplementaires pour tuer un demon si un stop classique n a pas reussi

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sys_alive.pl

    r5 r6  
    2727############################################################### 
    2828# Historique :                                                # 
    29 # v 1.5  : 2007-11-19 : version "deamon"                      # 
     29# v 1.5  : 2007-11-19 : mode "demon", tentatives supll.       # 
     30#                       d'arrets de demons                    # 
    3031# v 1.2.8: 2007-05-07 : Séparation rép conf, data & log       # 
    3132#                       + affichage "ps faux" au lieu de top  # 
     
    259260                                                WriteLog("Alerte de niveau 2 : arrêt de $demon pour $main::demons_to_stop{$demon} secondes"); 
    260261                                                Execute($main::demons_stop{$demon}); 
     262                                                # essais supplémentaires si encore des traces 
     263                                                my $essai = 1; 
     264                                                while ((my $top2 = `$term top b n 1`) =~ /\s$demon\s*$/m) { 
     265                                                        WriteLog("Trop d'essai pour forcer l'arrêt de $demon qui semble tourner encore"), last if $essai > 5; 
     266                                                        my @pids; map { push @pids, $1 if /^\s*(\d+).+\s$demon\s*$/} split(/\n/, $top2); 
     267                                                        if (@pids+0) { 
     268                                                                WriteLog("Suite alerte de niveau 2 : force arrêt de $demon, essai $essai (kill @pids)"); 
     269                                                                Execute('kill -9 '.join(' ', @pids)); 
     270                                                        } 
     271                                                        $essai++; 
     272                                                } 
    261273                                        } else { 
    262274                                                WriteLog("Alerte de niveau 2 : impossible de stopper $demon car il n'est pas lancé");