Changeset 7785


Ignore:
Timestamp:
02/13/19 00:19:23 (10 days ago)
Author:
alexander
Message:

Altering restart to send message to statmgr's ring if it exists, defaults to first ring (as before otherwise)

Also tidying up some statmgr log messages

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/reporting/statmgr/statmgr.c

    r7256 r7785  
    765765 
    766766            desc[j].restart = STOPPED; 
    767             logit( "t", "TYPE_STOP message received for %s with pid %s; module marked as stopped", desc[j].modName, desc[j].modPid ); 
     767            logit( "t", "TYPE_STOP message received for %s with pid %s; module marked as stopped\n", desc[j].modName, desc[j].modPid ); 
    768768 
    769769          } else if (( reclogo.type == TypeRestart ) && (desc[j].restart == STOPPED)){ 
     
    772772 
    773773             * will monitor again and restart it if needed. */ 
    774  
     774            logit("t", "TYPE_RESTART message received for %s, module to be monitored for restarts\n", desc[j].modName); 
    775775            desc[j].restart = RESTARTME; 
    776776 
  • trunk/src/system_control/restart/restart.c

    r6803 r7785  
    6060void SendRestartRequest( char* ); 
    6161void ReadRingName( char*, char* ); 
     62//looks for statmgr process, attempts to read that ring 
     63//returns 1 if Ringname found, 0 otherwise 
     64int CheckForStatusRing( char *, char * ); 
     65int ReadStatusRingName( char *, char *);  
    6266 
    6367SHM_INFO   region;                /* The shared memory region   */ 
     
    134138/* Read startstop's config file to find a valid transport ring name 
    135139 ******************************************************************/ 
    136    ReadRingName( ringname, configFile ); 
     140   if (CheckForStatusRing( ringname, configFile ) == 0) 
     141   { 
     142      ReadRingName( ringname, configFile ); 
     143   } 
    137144 
    138145   if( (ringKey = GetKey(ringname)) == -1 ) 
     
    186193} 
    187194 
     195 
     196  /************************************************************* 
     197   *                      ReadStatusRingName                   * 
     198   * Read statmgr's config for 'RingName'                      * 
     199   * Return 1 if successful, 0 otherwise 
     200   *************************************************************/ 
     201int ReadStatusRingName( char *ringname, char *statmgrConfigName ) 
     202{ 
     203   int        nfiles; 
     204   char      *com, *str; 
     205 
     206   nfiles = k_open( statmgrConfigName ); 
     207   if ( nfiles == 0 ) 
     208   { 
     209        printf( "restart: Error opening statmgr config <%s>. Exiting.\n", 
     210                 statmgrConfigName ); 
     211        return 0; 
     212   } 
     213 
     214/* Process Ring commands from startstop's command file 
     215   ***************************************************/ 
     216   while(nfiles > 0)          /* While there are command files open */ 
     217   { 
     218        while(k_rd())         /* Read next line from active file  */ 
     219        { 
     220            com = k_str();    /* Get the first token from line */ 
     221 
     222        /* Ignore blank lines & comments 
     223           *****************************/ 
     224            if( !com )           continue; 
     225            if( com[0] == '#' )  continue; 
     226 
     227        /* Process only 1st Ring command 
     228           *****************************/ 
     229           if( k_its( "RingName" ) ) 
     230           { 
     231                str = k_str(); 
     232                strcpy( ringname, str ); 
     233                nfiles = k_close(); 
     234                return 1; 
     235           } 
     236 
     237        /* See if there were any errors processing this command 
     238           ****************************************************/ 
     239           if( k_err() ) 
     240           { 
     241               printf( "restart: Bad <%s> command in <%s>. Exiting.\n", 
     242                        com, statmgrConfigName ); 
     243               return 0; 
     244           } 
     245        } 
     246        nfiles = k_close(); 
     247   } 
     248 
     249   return 0; 
     250} 
     251 
     252  /************************************************************* 
     253   *                   CheckForStatusRing                      * 
     254   * Read startstop's configfile, looks for statmgr process    * 
     255   * If statmgr is found, attempts to read statmgr's .d file   * 
     256   *   and then read the RingName in statmgr.d                 * 
     257   *************************************************************/ 
     258int CheckForStatusRing( char *ringname, char *configFile ) 
     259{ 
     260   int        nfiles; 
     261   char      *com, *str, *statmgrConfig, *ptr; 
     262 
     263   nfiles = k_open( configFile ); 
     264   if ( nfiles == 0 ) 
     265   { 
     266        printf( "restart: Error opening file <%s>. Exiting.\n", 
     267                 configFile ); 
     268        return 0; 
     269   } 
     270 
     271/* Process Ring commands from startstop's command file 
     272   ***************************************************/ 
     273   while(nfiles > 0)          /* While there are command files open */ 
     274   { 
     275        while(k_rd())         /* Read next line from active file  */ 
     276        { 
     277            com = k_str();    /* Get the first token from line */ 
     278 
     279        /* Ignore blank lines & comments 
     280           *****************************/ 
     281            if( !com )           continue; 
     282            if( com[0] == '#' )  continue; 
     283 
     284        /* Look at processes: 
     285           *****************************/ 
     286           if( k_its( "Process" ) ) 
     287           { 
     288                str = k_str(); 
     289                ptr = strtok(str, " "); 
     290                if( strcmp(ptr, "statmgr" ) == 0) 
     291                { 
     292                  statmgrConfig = strtok( NULL, " "); 
     293                  nfiles = k_close(); 
     294                  return ReadStatusRingName(ringname,  statmgrConfig);  
     295                } 
     296           } 
     297 
     298        /* See if there were any errors processing this command 
     299           ****************************************************/ 
     300           if( k_err() ) 
     301           { 
     302               printf( "restart: Bad <%s> command in <%s>. Exiting.\n", 
     303                        com, configFile ); 
     304               return 0; 
     305           } 
     306        } 
     307        nfiles = k_close(); 
     308   } 
     309   return 0; 
     310} 
     311 
    188312  /************************************************************* 
    189313   *                      ReadRingName                         * 
Note: See TracChangeset for help on using the changeset viewer.