Event Handlers, start a java program, nohup issues.

Andreas Ericsson ae at op5.se
Thu Jul 2 10:50:20 CEST 2009


Marco Tirado wrote:
> Hello Users:
> 
> I have a problem with an event handler of mine. The handler starts a java
> daemon-like program which loops forever waiting for connections and performs
> JMX queries against our java applications.
> 
> The problem is that the handler times out when it is run by nagios. This is
> what I see in the logs:
> 
> [01-07-2009 18:45:36] SERVICE EVENT HANDLER:
> bj-mon-01;JMX_Server_Running;(null);(null);(null);start_jmx_server
> [01-07-2009 18:46:07] Warning: Service event handler command
> '/usr/local/nagios/libexec/eventhandlers/start_jmx_server CRITICAL SOFT 1'
> timed out after 30 seconds
> 
> The event handler should start my JMXServer both in hard and soft states. I
> have run the command from the console as the "nagios" user and it works, so
> the problem has nothing to do with user rights for nagios.
> 
> The problem is that the handler hangs when I run "nohup" followed by my
> command for starting the server (see the red text below).
> 
> My event handler looks like this:
> 
> ###########################
> # PROPERTIES
> ###########################
> 
> PORT="4444"
> ECHO_CMD="/bin/echo"
> JAVA_CMD="/usr/bin/java"
> CLASSPATH="MyClasspath"
> JVM_OPTIONS="MyOptions"
> 
> ###########################
> 
> # What state is the JMXServer in?
> case "$1" in
> 
> OK)
>         ;;
> 
> WARNING)
>         ;;
> 
> UNKNOWN)
>         ;;
> 
> CRITICAL)
> 
>         case "$2" in
> 
>         SOFT)
> 
>                 `$ECHO_CMD "TRYING restart" >> /tmp/test`
>                 nohup $JAVA_CMD -cp $CLASSPATH $JVM_OPTIONS JMXServer $PORT
> </dev/null 2>&1 >> $LOG_FILE&
>                 `$ECHO_CMD "TRYING restart" >> /tmp/test`
> 
>                 ;;
> 
>         HARD)
> 
>                 `$ECHO_CMD "TRYING restart" >> /tmp/test`
>                 nohup $JAVA_CMD -cp $CLASSPATH $JVM_OPTIONS JMXServer $PORT
> </dev/null 2>&1 >> $LOG_FILE&
>                 `$ECHO_CMD "FINISHED trying" >> /tmp/test`
> 
>                 ;;
> 
>         esac
> 
>         ;;
> 
> esac
> 
> exit 0
> 
> 
> 
> Any help, hint or recommendation is deeply appreciated.
> 

You need to make the java daemon run in the background. That will make
Nagios ignore it after it has moved from the foreground.

-- 
Andreas Ericsson                   andreas.ericsson at op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

------------------------------------------------------------------------------
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. 
::: Messages without supporting info will risk being sent to /dev/null





More information about the Users mailing list