--- monit-3.1/validate.c Sat Dec 21 14:56:04 2002 +++ monit-3.1-monex/validate.c Tue Feb 4 08:14:28 2003 @@ -130,8 +130,6 @@ static void do_validate(Process_T p) { ASSERT(p); - /* First, check for pre-conditions */ - if(do_not_validate(p)) return; /* Set a SIGTERM block */ sigemptyset(&ns); @@ -141,6 +139,9 @@ static void do_validate(Process_T p) { /* Test for running process */ if(!(pid= is_process_running(p))) { + /* check for pre-conditions */ + if(do_not_validate(p)) return; + do_start(p, "Reason: Process is not running."); goto reinstall; @@ -152,8 +153,29 @@ static void do_validate(Process_T p) { } + /* + * if process is restared manually then activate it again.... + */ + + if (!p->do_validate && p->mode != MODE_PASSIVE) { + + LOCK(Run.mutex) + p->do_validate= TRUE; + END_LOCK; + + if(Run.debug) { + + log("'%s' with pid %d activated monitoring\n", p->name, (int)pid); + + } + } else + + /* check for pre-conditions */ + if(do_not_validate(p)) return; + } + if(Run.doprocess) { if(update_process_data(p, pid)) {