/[monit]/monit/validate.c
ViewVC logotype

Diff of /monit/validate.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.37 by hauk, Tue Feb 18 13:55:32 2003 UTC revision 1.38 by chopp, Fri Jun 6 09:31:16 2003 UTC
# Line 44  Line 44 
44  static sigjmp_buf timeout;  static sigjmp_buf timeout;
45    
46  /* Private Prototypes */  /* Private Prototypes */
47  static void do_validate(Process_T);  static void do_validate(Process_T, ProcessTree_T *, int);
48  static void do_restart(Process_T, char *, ...) ;  static void do_restart(Process_T, char *, ...) ;
49  static void do_start(Process_T, char *, ...) ;  static void do_start(Process_T, char *, ...) ;
50  static void do_stop(Process_T, char *, ...);  static void do_stop(Process_T, char *, ...);
# Line 90  static int  compare_value(int, int, int) Line 90  static int  compare_value(int, int, int)
90  void validate() {  void validate() {
91    
92    Process_T p;    Process_T p;
93      ProcessTree_T * pt;
94      int treesize = 0;
95    
96      if (Run.doprocess) {
97    
98        treesize = initprocesstree(&pt);
99    
100      }
101    
102    if(! update_loadavg()) {    if(! update_loadavg()) {
103            
# Line 100  void validate() { Line 108  void validate() {
108    for(p= processlist; p; p= p->next) {    for(p= processlist; p; p= p->next) {
109      if(p->visited)      if(p->visited)
110          continue;          continue;
111      do_validate(p);      do_validate(p, pt, treesize);
112    }    }
113    
114    reset_depend();    reset_depend();
115    
116      if (Run.doprocess) {
117    
118        delprocesstree(pt, treesize);
119    
120      }
121    
122  }  }
123    
124    
# Line 119  void validate() { Line 133  void validate() {
133   *   *
134   * We block for the signals SIGTERM while in this function.   * We block for the signals SIGTERM while in this function.
135   */   */
136  static void do_validate(Process_T p) {  static void do_validate(Process_T p, ProcessTree_T * pt, int treesize) {
137        
138    Port_T pp;    Port_T pp;
139    Resource_T pr;    Resource_T pr;
# Line 166  static void do_validate(Process_T p) { Line 180  static void do_validate(Process_T p) {
180    
181    if(Run.doprocess) {    if(Run.doprocess) {
182    
183      if(update_process_data(p, pid)) {      if(update_process_data(p, pt, treesize, pid)) {
184        
185        if(! check_process_state(p, report)) {        if(! check_process_state(p, report)) {
186    
# Line 751  static int check_resources(Process_T p, Line 765  static int check_resources(Process_T p,
765                
766        }        }
767      }      }
768        break;
769    
770      case RESOURCE_ID_CHILDREN:
771    
772        if(compare_value(pr->operator, pi->children, pr->limit)) {
773    
774          vlog(report, STRLEN, p,
775               "children of %i matches resource limit "
776               "[children%s%i]",
777               pi->children, operatorshortnames[pr->operator],
778               pr->limit);      
779          
780          okay= FALSE;
781        
782        } else {
783    
784          if(Run.debug) {
785            
786            log("'%s' children check passed "
787                "[current children=%i]\n",
788                p->name, pi->children);
789          
790          }
791        }
792        break;
793    
794      case RESOURCE_ID_TOTAL_MEM_KBYTE:
795    
796        if(compare_value(pr->operator, pi->total_mem_kbyte, pr->limit)) {
797    
798          vlog(report, STRLEN, p,
799               "total mem amount of %ldkB matches resource limit"
800               " [total mem amount%s%ldkB]",
801               pi->total_mem_kbyte, operatorshortnames[pr->operator],
802               pr->limit);      
803          
804          okay= FALSE;
805        
806        } else {
807    
808          if(Run.debug) {
809            
810            log("'%s' total mem amount check passed"
811                " [current total mem amount=%ldkB]\n",
812                p->name, pi->total_mem_kbyte);
813          
814          }
815        }
816      break;      break;
817    
818    default:    default:

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.38

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26