Event Handlers, start a java program, nohup issues.

Marco Tirado marco.tirado at gmail.com
Thu Jul 2 16:16:39 CEST 2009


That is exactly what I am doing (or trying to do with) the "&" character at
the end of my command. But it does not appear to be working, the command
looks like this:

nohup $JAVA_CMD -cp $CLASSPATH $JVM_OPTIONS JMXServer $PORT </dev/null 2>&1
>> $LOG_FILE&

Any suggestions? Am I missing something else?

//Marco

On Thu, Jul 2, 2009 at 10:50 AM, Andreas Ericsson <ae at op5.se> wrote:

> 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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.monitoring-lists.org/archive/users/attachments/20090702/38c2e6bc/attachment.html>
-------------- next part --------------
------------------------------------------------------------------------------
-------------- next part --------------
_______________________________________________
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